python系统编码格式

python在安装的时候默认的编码格式是ASCII,当程序中出现非ASCII编码时,python的处理常常会报这样的错UnicodeDecodeError,python没办法处理非ASCII编码的,此时需要自己设置将python的默认编码,一般设置为UTF-8的编码格式。

1. 如何查看python默认的编码格式:

>>> import sys
>>> sys.getdefaultencoding()
‘ascii‘
>>> 

2.如何设置默认编码格式:

>>> sys.setdefaultencoding(‘utf8‘)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: ‘module‘ object has no attribute ‘setdefaultencoding‘
>>> reload(sys)

可能会报AttributeError: ‘module‘ object has no attribute ‘setdefaultencoding‘的错误,执行reload(sys),在执行以上命令就可以顺利通过。

此时在执行sys.getdefaultencoding()就会发现编码已经被设置为utf8的了,但是在解释器里修改的编码只能保证当次有效,在重启解释器后,会发现,编码又被重置为默认的ascii了,那么有没有办法一次性修改程序或系统的默认编码呢。

有2种方法设置python的默认编码:

一个解决的方案在程序中加入以下代码:

import sys
reload(sys)
sys.setdefaultencoding(‘utf8‘)  

另一个方案是在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:

Python代码

# encoding=utf8
import sys  

reload(sys)
sys.setdefaultencoding(‘utf8‘)   

此时重启python解释器,执行sys.getdefaultencoding(),发现编码已经被设置为utf8的了,多次重启之后,效果相同,这是因为系统在python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。

另外有一种解决方案是在程序中所有涉及到编码的地方,强制编码为utf8,即添加代码encode("utf8"),这种方法并不推荐使用,因为一旦少写一个地方,将会导致大量的错误报告,我曾经遇到这种情况,错误日志压缩之后尚有70多K,全都是这一个问题,让人有很崩溃的感觉。

时间: 2024-11-08 02:49:15

python系统编码格式的相关文章

如何设置python的编码格式为utf-8

重装了系统(ubuntu 14.04)原来正常可用的OpenERP项目在切换到开发者模式的时候报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128) 而在服务器上的项目正常可用,其原因是由于python的默认编码设置为ascii,可以用以下命令查看: import sys sys.getdefaultencoding() 解决方案有两种: 1. 在项

Python系统运维常用库

Python系统运维常用库 1.psutil是一个跨平台库(http://code.google.com/p/psutil/) 能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理. 2.IPy(http://github.com/haypo/python-ipy),辅助IP规划. 3.dnspython(http://dnspython.org)Python实现的一个DNS工具包. 4.difflib:difflib作为Python

[python] 系统监控

每分钟 采集一次linux信息,采集到的数据暂存到本地sqlite 10分钟通过http上报一次 sqlite库中保存7天的过期数据 monitor4a.out是所有输出,monitor4a.log是INFO级别以上的日志(100MB的5个日志文件循环) python v2.6.6-2.7.8通过 #!/usr/bin/env python # _*_ coding:UTF-8 _*_ __author__ = 'shanl' import socket store_root_dir= ".&q

fengyun.rui大牛写的基于flask的python系统运维管理工具:happyshell

项目地址:https://github.com/rfyiamcool/happyshell/ 大牛博文:http://rfyiamcool.blog.51cto.com/1030776/1122445 源码写满"卧槽", 大牛当真性情中人,还望注意下的好. ========= 如果你是来找个趁手的python系统运维管理工具的话,那么,这不是你要的. 芮大牛写的这东西,单放giuthub上的源码,想完整跑起来可不容易,报错哗哗的. 所以,在我使用之后,我特地写篇博客来鄙视一下. 首先g

【python系统学习07】一张图看懂字典并学会操作

点击跳转 - 原文地址 数据类型 - 字典(dict) 目录: [python系统学习07]一张图看懂字典并学会操作 原文地址:https://www.cnblogs.com/padding1015/p/12232571.html

Python系统模块sys

在python官方提供的核心库中,有两大比较重要的核心库,分别是sys和os,这两个库模块都是直接和操作系统打交道的模块,因此想要熟练掌握python系统编程,对这两个模块的了解就必不可少了. 今天我们来看一下sys这个模块,既然这个模块是和操作系统打交道的,那么我们来看一下它涉及系统信息的功能. 1. 输出系统平台和版本 在很多Python库中,进行系统版本的判别就是使用sys模块来进行的,我们来看一下具体的使用代码: Windows系统 >>> import sys >>

python系统模块

Python中大多数系统接口都集中在两个模块:sys和os.这么说有点过于简单化 还有一些其他的表转模块也属于这个领域他们包括: glob 用于文件名的扩展 socket 用于网络连接和进程间通信(IPC) threading,_threading,queue 用于运行和同步话并发线程 time,timeit 用于获取系统时间相关细节. subprocess,multiprocessing 用于启动和控制并行进程 signal,select,shutil,tempfile 用于多种系统相关任务

Python系统(os)相关操作

文件操作 python中常用于文件处理的模块有os,shutil等. 1 创建文件 文件的创建可以使用open()函数,如下创建一个test_file.txt的文件: >>> with open('/Users/xxx/test_file.txt','wt') as f_obj: ... print("This is the content from the test file---John",file=f_obj) ... >>> 执行完后,可以找

python系统信息模块psutil

psutil模块能够获取系统运行的进程和系统利用率.包括:CPU,内存,磁盘,网络等信息.一般用于系统的监控,分析和限制系统资源和进程的管理. 首先下载安装psutil: wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz tar zxvf  psutil-2.0.0.tar.gz cd psutil-2.0.0 python setup.py install 安装出错信息: error:comman