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 相关文章推荐
python远程登录代码
Apr 29 Python
Python 使用SMTP发送邮件的代码小结
Sep 21 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
Apr 18 Python
pandas中去除指定字符的实例
May 18 Python
Django中反向生成models.py的实例讲解
May 30 Python
详解flask表单提交的两种方式
Jul 21 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
使用pytorch 筛选出一定范围的值
Jun 28 Python
python创建文本文件的简单方法
Aug 30 Python
python实现自动清理文件夹旧文件
May 10 Python
Keras多线程机制与flask多线程冲突的解决方案
May 28 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
检查php文件中是否含有bom的函数
2012/05/31 PHP
PHP多例模式介绍
2013/06/24 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
Angular中$cacheFactory的作用和用法实例详解
2016/08/19 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python判断操作系统类型代码分享
2014/11/22 Python
手把手教你python实现SVM算法
2017/12/27 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
通过Python实现一个简单的html页面
2020/05/16 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
项目副经理岗位职责
2013/12/30 职场文书
公证委托书大全
2014/04/04 职场文书
终止劳动合同协议书
2014/04/14 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书