Python中读取与写入文件时的编码方式 | 您所在的位置:网站首页 › 机内码是解决汉字的什么问题 › Python中读取与写入文件时的编码方式 |
在《Python中文件的读取》与《Python中文件的写入》中提到通过文件对象调用read()函数和write()函数实现文件的读写。以上方法能够正确地取或写入英文时,当要读写的内容是中文时,则需要考虑编码方式。 1 读取已经存在的数据 1.1 创建文件创建一个txt文件,在该文件中输入中文内容“你好世界”,可以看到该文件的编码方式是“UTF-8”,如图1所示。 图1 新建txt文件 相关链接1 UTF-8编码,是Unicode Transformation Format即可变长字符编码的简称,使用UTF-8编码,英文字母用一个字节表示,中文汉字用三个字节表示。“你好世界”这四个中文汉字的UTF-8编码如图2所示。 图2 “你好世界”的UTF-8编码 1.2 读取文件 1.2.1 未指定编码方式使用图3所示的代码读取文件。
图3 未指定编码方式读取文件的代码 此时,open()函数没有指定使用何种编码方式读取文件,因此打印出来的内容是乱码。 1.2.2 指定编码方式open()函数的encoding参数指定了以何种编码方式读取文件,代码图4所示。 图4 指定编码方式读取文件的代码 以上代码中,使用了“UTF-8”编码方式读取文件内容,此时的输出是“你好世界”。 2 读取Python代码写入的数据在读取Python代码写入的数据时,应使用与写入时使用的相同编码方式。例如,在写入时使用“gbk”方式,那么在读取时必须也要使用“gbk”方式,而不能使用“UTF-8”的方式。 相关链接2 GBK编码,Chinese Internal Code Specification即汉字内码扩展规范的简称,其中K是汉语“扩展”的拼音“KuoZhan”的简写。无论英文字母还是中文汉字,都是用两个字节表示,如图5所示。 图5 “你好世界”的GBK编码 2.1 使用指定方式写入数据使用“GBK”编码方式向data.txt文件中写入“你好世界”,代码如图6所示。 图6 指定编码方式向文件中写入数据的代码 打开data.txt,此时可以看到该文件的编码方式是“ANSI”,如图7所示。 图7 使用Python代码写入的txt文件 相关链接3 ANSI编码,是American National Standards Institute即美国国家学会标准的简写,在简体中文的操作系统中,ANSI编码代表的就是GBK编码。 2.2 使用相同的编码方式读取文件读取文件的代码如图8所示。 图8 使用相同的编码方式读取文件 如果读取时使用的编码方式与写入时不同,则无法正确读取数据,如图9所示。 图9 使用不同的编码方式读取文件 |
CopyRight 2018-2019 实验室设备网 版权所有 |