python读取中文txt文本的方法


Posted in Python onApril 12, 2018

对于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()。

以上这篇python读取中文txt文本的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3.2中的字符串函数学习总结
Apr 23 Python
python3之微信文章爬虫实例讲解
Jul 12 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Python3中列表list合并的四种方法
Apr 19 Python
使用Python OpenCV为CNN增加图像样本的实现
Jun 10 Python
python 函数中的内置函数及用法详解
Jul 02 Python
Django中间件基础用法详解
Jul 18 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
python实现简易学生信息管理系统
Apr 05 Python
tensorflow 变长序列存储实例
Jan 20 Python
基于python 处理中文路径的终极解决方法
Apr 12 #Python
解决Python2.7读写文件中的中文乱码问题
Apr 12 #Python
python 实现对文件夹内的文件排序编号
Apr 12 #Python
pandas数值计算与排序方法
Apr 12 #Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 #Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 #Python
Python实现简单http服务器
Apr 12 #Python
You might like
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
PHP上传文件时自动分配路径的方法
2015/01/09 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
初中毕业生的自我评价
2014/03/03 职场文书
学校社会实践活动总结
2014/07/03 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
创业计划书之酒厂
2019/10/14 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android