Python3 中文文件读写方法
作者:SuPhoebe 时间:2021-07-14 20:02:39
字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码。
在新版本的python3中,取消了unicode类型,代替它的是使用unicode字符的字符串类型(str),字符串类型(str)成为基础类型如下所示,而编码后的变为了字节类型(bytes) 但是两个函数的使用方法不变:
decode encode
bytes ------> str(unicode)------>bytes
u = '中文' #指定字符串类型对象u
str = u.encode('gb2312') #以gb2312编码对u进行编码,获得bytes类型对象str
u1 = str.decode('gb2312')#以gb2312编码对字符串str进行解码,获得字符串类型对象u1
u2 = str.decode('utf-8')#如果以utf-8的编码对str进行解码得到的结果,将无法还原原来的字符串内容
文件读取问题
假如我们读取一个文件,文件保存时,使用的编码格式,决定了我们从文件读取的内容的编码格式,例如,我们从记事本新建一个文本文件test.txt, 编辑内容,保存的时候注意,编码格式是可以选择的,例如我们可以选择gb2312,那么使用python读取文件内容,方式如下:
f = open('test.txt','r')
s = f.read() #读取文件内容,如果是不识别的encoding格式(识别的encoding类型跟使用的系统有关),这里将读取失败
'''假设文件保存时以gb2312编码保存'''
u = s.decode('gb2312') #以文件保存格式对内容进行解码,获得unicode字符串
'''下面我们就可以对内容进行各种编码的转换了'''
str = u.encode('utf-8')#转换为utf-8编码的字符串str
str1 = u.encode('gbk')#转换为gbk编码的字符串str1
str1 = u.encode('utf-16')#转换为utf-16编码的字符串str1
codecs进行文件的读取
python给我们提供了一个包codecs进行文件的读取,这个包中的open()函数可以指定编码的类型:
import codecs
f = codecs.open('text.text','r+',encoding='utf-8')#必须事先知道文件的编码格式,这里文件编码是使用的utf-8
content = f.read()#如果open时使用的encoding和文件本身的encoding不一致的话,那么这里将将会产生错误
f.write('你想要写入的信息')
f.close()
来源:http://blog.csdn.net/u013007900/article/details/62219289
标签:Python3,中文,文件,读写
0
投稿
猜你喜欢
python TCP Socket的粘包和分包的处理详解
2021-06-14 16:49:50
MySQL之存储过程按月创建表的方法步骤
2024-01-25 02:40:40
程序员用vscode听网易云的实现
2022-12-20 06:31:55
python处理json文件的四个常用函数
2023-01-17 21:26:58
Python+Pygame制作简易版2048小游戏
2022-12-01 18:05:03
python import 上级目录的导入
2021-09-13 00:54:29
WEB页面工具语言XML带来的好处
2008-05-29 11:01:00
Firefox下正则诡异问题
2009-08-03 14:03:00
VSCode Python开发环境配置的详细步骤
2021-06-15 23:29:15
JavaScript设计模式之原型模式分析【ES5与ES6】
2024-05-02 16:29:37
Python入门:认识列表和元组
2022-11-06 02:18:42
python实现K最近邻算法
2021-06-18 04:05:46
python基于watchdog库全自动化监控目录文件
2022-04-21 19:17:47
Mysql中报错函数floor()函数和rand()函数的配合使用及原理详解
2024-01-21 13:41:03
linux下python使用sendmail发送邮件
2023-02-27 00:14:33
基于ES6 Array.of的用法(实例讲解)
2024-06-13 16:11:28
MooTools的Cookie类太“自作聪明”了
2008-11-13 12:59:00
Python实例详解递归算法
2023-05-17 02:25:06
Tkinter组件Entry的具体使用
2023-03-21 00:41:40
python开启摄像头以及深度学习实现目标检测方法
2023-10-27 03:23:18