python为源文件指定系统默认_Python 设置系统默认编码
python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。
查询系统默认编码可以在解释器中输入以下命令:
Python代码
>>>sys.getdefaultencoding()>>>sys.getdefaultencoding()
设置默认编码时使用:
Python代码
>>>sys.setdefaultencoding('utf8')>>>sys.setdefaultencoding('utf8')
可能会报AttributeError: 'module' object has no attribute 'setdefaultencoding'的错误,执行reload(sys),在执行以上命令就可以顺利通过。
此时在执行sys.getdefaultencoding()就会发现编码已经被设置为utf8的了,但是在解释器里修改的编码只能保证当次有效,在重启解释器后,会发现,编码又被重置为默认的ascii了,那么有没有办法一次性修改程序或系统的默认编码呢。
有2种方法设置python的默认编码:
一个解决的方案在程序中加入以下代码:
Python代码
importsys
reload(sys)
sys.setdefaultencoding('utf8')import sys
reload(sys)
sys.setdefaultencoding('utf8')
另一个方案是在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:
Python代码
# encoding=utf8
importsys
reload(sys)
sys.setdefaultencoding('utf8')# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
此时重启python解释器,执行sys.getdefaultencoding(),发现编码已经被设置为utf8的了,多次重启之后,效果相同,这是因为系统在python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。
另外有一种解决方案是在程序中所有涉及到编码的地方,强制编码为utf8,即添加代码encode("utf8"),这种方法并不推荐使用,因为一旦少写一个地方,将会导致大量的错误报告,我曾经遇到这种情况,错误日志压缩之后尚有70多K,全都是这一个问题,让人有很崩溃的感觉。
python为源文件指定系统默认_Python 设置系统默认编码相关推荐
- android 11.0 12.0添加系统字体并且设置为默认字体
1.概述 在11.0 12.0系统定制化开发中,在产品定制中,有产品需求对于系统字体风格不太满意,所以想要更换系统的默认字体,对于系统字体的修改也是常有的功能,而系统默认也支持增加字体,所以就来添加楷 ...
- PC摄像头设置 默认摄像头设置 win11 默认摄像头设置
PC摄像头设置 默认摄像头设置 win11 默认摄像头设置 答案: 在设备管理器中,禁用用不到的虚拟摄像头.
- python环境变量是什么意思_python设置环境变量有什么用
设置Python的环境变量的作用: 当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找.用户通过设置环境变量,来更好的运行进程. ...
- ubuntu双系统把win7设置为默认启动选项
最近给朋友的电脑中安装了ubuntu系统,与之前的win7系统共存,每次开机默认启动的是ubuntu系统,现在想把默认启动选项设置为win7系统,我们一起看看怎么设置. 工具/原料 ubuntu16. ...
- python不正确的关系字符_Python系列之 - 字符编码问题
CPU:速度快 硬盘:永久保存 2.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就可以启动一个进程,是在内存中的,所以在编辑器编写的内容也都是存放在内存中的,断 ...
- android 系统亮度,android 设置系统屏幕亮度
android 设置系统屏幕亮度 权限 /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHT ...
- python为源文件指定系统默认字符编码是_系统编码、文件编码与python系统编码
在linux中获取系统编码结果: Windows系统的编码,代码页936表示GBK编码 可以看到linux系统默认使用UTF-8编码,windows默认使用GBK编码.Linux环境下,文件默认使用U ...
- python系统字体_Python matplotlib修改默认字体的操作
matplotlib库作为Python常用的数据可视化库,默认字体居然不支持中文字体,必须得吐槽一下~ 闲言少叙,开始正文 方法1:在plot中指定prop参数 使用matplotlib.font_m ...
- python系统监控_python psutil系统监控详解
一.psutil模块: 1.psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息 ...
最新文章
- 程序员看过来!高通漏洞赏金最高1.5万美金
- python输入y继续运行_python – 如何使Fabric在获取退出状态后继续运行下一个命令:1?...
- Java——super的使用
- Java---取得操作系统默认的代理
- oracle vm安装增强功能,Linux 开发环境中为VirtualBox安装增强功能
- logging模块(* * * * *)
- 基于ASP.NET MVC框架开发Web论坛应用程序
- 写ios系统和安卓系统的人到底有多牛?
- python网络爬虫学习笔记(八):XPath的使用
- python语句块的定义_第五章、Python语句
- 把js封装到html,什么是javascript封装?
- ST六轴传感器LSM6DSO使用记录
- java 生成树形_Java实现生成Excel树形表头完整代码示例
- FBReader导入eclipse 和Androidstudio相关问题
- 【C语言】C语言中基础操作符详细讲解
- 改变手机状态栏颜色常见的2种方法
- Android笔记:Zing二维码扫描解决二维码被拉伸
- 微信小程序播放视频 禁止快进
- 如何删除PDF水印?PDF删除水印怎么操作
- 嵌入式优秀资源网址整理