同一人可以做几个网站的负责人,园林景观设计公司销售培训知识,做网站怎么设置背景,企业网站定制开发如果要在python2的py文件里面写中文#xff0c;则必须要添加一行声明文件编码的注释#xff0c;否则python2会默认使用ASCII编码。(python3已经没有这个问题了#xff0c;python3默认的文件编码是UTF-8)必须将编码注释放在第一行或者第二行,一般来说#xff0c;Python文件的…如果要在python2的py文件里面写中文则必须要添加一行声明文件编码的注释否则python2会默认使用ASCII编码。(python3已经没有这个问题了python3默认的文件编码是UTF-8)必须将编码注释放在第一行或者第二行,一般来说Python文件的前两行要这样写#!/usr/bin/python# -*- coding: UTF-8 -*-其中第一行是指定python解释器第二行是指定python文件编码方式设置编码方式有以下可选的方法1. 带等号的设置方法#!/usr/bin/python# coding2. 最常见的带冒号的(大多数编辑器都可以正确识别的)#!/usr/bin/python# -*- coding: -*-3. vim的#!/usr/bin/python# vim: set fileencoding :设置头部的编码声明有以下几个作用如果代码中有中文注释就需要此声明比较高级的编辑器(比如我的emacs)会根据头部声明将此作为代码文件的格式。程序会通过头部声明解码初始化 u”人生苦短”这样的unicode对象(所以头部声明和代码的存储格式要一致)设置默认解码格式import sys #引用sys模块进来并不是进行sys的第一次加载reload(sys) #重新加载syssys.setdefaultencoding(utf8) ##调用setdefaultencoding函数这里特别注意的是第二行的reload(sys)这个一定不能少少了的话就不能正确运行。那么为什么要重新加载而直接引用过来则不能调用该函数呢因为setdefaultencoding函数在被系统调用后被删除了所以通过import引用进来时其实已经没有了所以必须reload一次sys模块这样setdefaultencoding才会为可用才能在代码里修改解释器当前的字符编码。在python安装目录的Lib文件夹下有一个叫site.py的文件在里面可以找到main() – setencoding()–sys.setdefaultencoding(encoding),因为这个site.py每次启动python解释器时会自动加载所以main函数每次都会被执行setdefaultencoding函数一出来就已经被删除了。关于 sys.defaultencoding这个在解码没有明确指明解码方式的时候使用。比如我有如下代码#! /usr/bin/env python# -*- coding: utf-8 -*-s 中文 # 注意这里的 str 是 str 类型的而不是 unicodes.encode(gb18030)这句代码将 s 重新编码为 gb18030 的格式即进行 unicode - str 的转换。因为 s 本身就是 str 类型的因此Python 会自动的先将 s 解码为 unicode 然后再编码成 gb18030。因为解码是python自动进行的我们没有指明解码方式python 就会使用 sys.defaultencoding 指明的方式来解码。很多情况下 sys.defaultencoding 是ANSCII如果 s 不是这个类型就会出错。拿上面的情况来说我的 sys.defaultencoding 是 anscii而 s 的编码方式和文件的编码方式一致是 utf8 的所以出错了:UnicodeDecodeError: ascii codec cant decode byte 0xe4 in position0: ordinal not in range(128)对于这种情况我们有两种方法来改正错误一是明确的指示出 s 的编码方式#! /usr/bin/env python# -*- coding: utf-8 -*-s 中文s.decode(utf-8).encode(gb18030)二是更改 sys.defaultencoding 为文件的编码方式#! /usr/bin/env python# -*- coding: utf-8 -*-import sysreload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法我们需要重新载入sys.setdefaultencoding(utf-8)str 中文str.encode(gb18030)以上这篇python 设置文件编码格式的实现方法就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持聚米学院。