[python IO学习篇] 补充.py文件是中文, .ini文件内容是中文

1 python

代码文件的编码.py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character。需要在代码文件的第一行或第二行添加编码指示:
1 # coding=utf-8 ##以utf-8编码储存中文字符
2 print ‘中文‘
像上面那样直接输入的字符串是按照代码文件的编码来处理的,如果
用unicode编码,有以下三种方式:

1 s1 = u‘中文‘ #u表示用unicode编码方式储存信息

2 s2 = unicode(‘中文‘,‘gbk‘) unicode
是一个内置函数,第二个参数指示源字符串的编码格式。

decode是任何字符串具有的方法,将字符串转换成unicode格式,参数指示源字符串的编码格式。

encode
也是任何字符串具有的方法,将字符串转换成参数指定的格式。
2 字符串的编码
用 u‘汉字‘ 构造出来的是unicode类型,不用的话构造出来是str类型
str的编码是与系统环境相关的,一般就是sys.getfilesystemencoding()得到的值 .所以从unicode转str,要用encode方法  从str转unicode,所以要用decode 

例如:
# coding=utf-8   #默认编码格式为utf-8
s = u‘中文‘ #unicode编码的文字
print s.encode(‘utf-8‘)   #转换成utf-8格式输出
print s #效果与上面相同,似乎默认直接转换为指定编码
我的总结:
u=u‘unicode编码文字‘
g=u.encode(‘gbk‘) #转换为gbk格式
print g #此时为乱码,因为当前环境为utf-8,gbk编码文字为乱码 str=g.decode(‘gbk‘).encode(‘utf-8‘)   #以gbk编码格式读取g(因为他就是gbk编码的)并转换为utf-8格式输出
print str #正常显示中文  

安全的方法:
s.decode(‘gbk‘,‘ignore‘).encode(‘utf-8′) #以gbk编码读取(当然是读取gbk编码格式的文字了)并忽略错误的编码,转换成utf-8编码输出    因为decode的函数原型是decode([encoding], [errors=‘strict‘]),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;  如果设置为ignore,则会忽略非法字符;  如果设置为replace,则会用?取代非法字符;   如果设置为xmlcharrefreplace,则使用XML的字符引用。 ****************** 另外的方法:
f=file("/home/abc.txt") for i in f:     print i
时间: 2024-08-06 21:28:28

[python IO学习篇] 补充.py文件是中文, .ini文件内容是中文的相关文章

[python IO学习篇]补充打开中文路径的文件

http://blog.csdn.net/mottolinux/article/details/525600621 关于Python编码的基本常识 在python里面 "明文"是unicode类型和str , "密文"是其他的编码格式 如gbk utf-8 latin-1等等 编码: "明文"->"密文" .encode([目标编码格式]) 对象必须为unicode类型 解码: "密文"->&q

[python IO学习篇] [打开包含中文路径的文件]

https://my.oschina.net/mcyang000/blog/289460 打开路径含有中文的文件时,要注意: 1 在windows对文件名编码是采用gbk等进行编码保存,所以要将文件路径先解码,在按gbk编码: 字符串--解码成unicode--编码(注意str和unicode的转换) with open(r"D:\我的文档\桌面\python\config.ini".decode('utf8').encode('gbk'),'rb') as f: print f.re

【Python基础学习篇】Python基本语法

一.Python的文件类型 Python的文件类型主要分为3种,分别是源代码.字节代码和优化代码. 1.源代码 以py为扩展名 2.字节代码 Python源文件经过编译后生成扩展名为pyc的文件,pyc是编译过的字节文件.这种文件不能使用文本编辑工具打开或修改. 下面这段脚本可以把hello.py文件编译为hello.pyc文件 import py_compile py_compile compile("hello.py") 将此脚本保存为以py为扩展名的文件,运行后即可得到hello

[python][django学习篇][搭建简单的django开发环境]---暂时不搭建mysql

http://zmrenwu.com/post/3/ 1 搭建Python的虚拟环境: 安装virtualenv (前提是已经安装好Python和Pip)      pip install virtualenv 电脑新建目录:D:\software\python_virtual_envs\djanoproject_env 执行命令virtualenv D:\software\python_virtual_envs\djanoproject_env 执行虚拟环境:运行D:\software\pyt

pycharm新建ini文件或创建ini文件失败

1.pycharm创建ini格式的文件,没有对应的 ini 文件类型-------需要更新 Ini 2.setting–>marketplace 搜索 Ini ,然后进行安装,重启pycharm 3.重启pycharm后,之前创建的 ini 文件会自动更改为 正确的 ini 文件图标 原文地址:https://www.cnblogs.com/shouhu/p/11651381.html

[python][django学习篇][4]django完成数据库代码翻译:迁移数据库(migration)

上一篇我们已经完成数据库的设计,但是仅仅是python语言,并没有真正创建了数据库表.翻译成数据库语言,真正创建数据库表由django manage.py来实现,这一过程专业术语:迁移数据库 切换到manage.py所在目录,分别执行命令:python manage.py makemigrations , python manage.py migrate 执行python manage.py makemigrations结果 F:\pythoncode\django\workspace\blog

【Python基础学习篇】Python字典

字典(Dictionary)是由"键-值"对组成的集合,字典中的"值"通过"键"来引用. 一.字典的创建 字典由一系列的"键-值"(key-value)对组成,"键-值"对之间用"逗号"隔开,并且被包含在一对花括号中. 创建字典的格式如下: dictionary_name = {key1:value1,key2:value2,...} 如果需要创建一个空的字典,只需要一对花括号即可,如下

【Python基础学习篇八】Python函数

函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果. 一.函数的定义 函数的定义使用保留字def定义.函数在使用前必须定义,函数的类型即返回值的类型. Python函数定义的格式如下: def 函数名 (参数1[=默认值1],参数2[=默认值2]...): ... return 表达式 函数名可以是字母.数字或下划线组成的字符串,但不能以数字开头.函数的参数放在一对圆括号中,参数的个数可以有一个或多个,参数之间用逗号隔开,这种参数称之为形式参数. 例子: #!/usr/bin/e

【Python基础学习篇】Python列表

列表(List)通常作为函数的返回类型.列表和元组相似,也是由一组元素组成,列表可以实现添加.删除和查找操作,元素的值可以被修改. 一.列表的创建 列表是由一系列元素组成,所有的元素都被包含在一对方括号中.列表创建后,可以执行添加.删除或修改操作. 列表的创建格式如下所示: list_name = [元素1,元素2,...] 列表的添加可以调用append(),该方法的声明如下所示: append(object) 其中,object可以是元组.列表.字典或任何对象.append()每次添加的新元