python读取中文txt文本的方法
作者:jingyi130705008 时间:2021-06-10 03:55:51
对于python2.7
字符串在Python2.7内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码成unicode,再从unicode编码成另一种编码。
先用一些编辑器(如editplus )看一下你的txt文件保存的是utf-8,还是gb2312或其他的。当你读行时可以这样
line = (file1.readline()).decode('utf-8').encode('gb2312')或
line = (file1.readline()).decode('gb2312').encode('utf-8')
注意:txt使用utf8编码的时候会默认在文件开头插入三个不可见字符。这个是windows用来判断txt编码是否为utf8的。所以如果你直接使用decode('utf-8')的话是得不到正确结果的。
必须先判断前三个字符是否是windows插入的那三个。这个python已经定义了一个常量了,可以直接和这个常量比较,如果一样就删除前三个字符然后再decode。
import codecs
data = open("Test.txt").read()
if data[:3] == codecs.BOM_UTF8:
data = data[3:]
print data.decode("utf-8")
延伸:
因为decode的函数原型是decode([encoding], [errors='strict']),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。
对于Python3
python3下比较简单,打开的时候指定encoding参数即可:open("txt.txt", encoding="gbk").read()。
来源:https://blog.csdn.net/jingyi130705008/article/details/71513984
标签:python,读取,中文,txt
0
投稿
猜你喜欢
网站设计做好超级链接的重要性
2007-09-14 11:19:00
.NET framework 4.0 安装失败回滚问题
2023-07-11 15:50:35
python虚拟环境迁移方法
2021-09-13 07:52:51
详解 Go 语言中 Map 类型和 Slice 类型的传递
2024-05-29 22:07:11
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2023-08-03 10:29:49
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2023-08-02 12:12:27
python机器学习包mlxtend的安装和配置详解
2021-11-09 22:53:06
windows安装TensorFlow和Keras遇到的问题及其解决方法
2022-04-04 02:14:23
python中 logging的使用详解
2023-01-11 21:31:14
移除Selenium中window.navigator.webdriver值
2023-07-11 16:21:36
python类中super()和__init__()的区别
2021-04-17 16:03:02
Django给admin添加Action的步骤详解
2022-10-12 00:59:40
ASP检测服务器相关的一些代码
2008-01-25 19:20:00
Python简明讲解filter函数的用法
2021-07-24 13:00:38
MySQL两种表存储结构性能比较测试过程
2007-12-09 12:45:00
Pyecharts绘制全球流向图的示例代码
2021-04-30 14:52:56
Python中的zip函数使用示例
2021-05-15 01:10:53
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2021-11-30 22:35:03
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2021-11-05 06:22:11
Go语言流程控制语句
2023-10-11 00:53:54