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实现simhash算法实例
Apr 25 Python
Python 'takes exactly 1 argument (2 given)' Python error
Dec 13 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
Python-Tkinter Text输入内容在界面显示的实例
Jul 12 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
Python 跨.py文件调用自定义函数说明
Jun 01 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
python实现马丁策略的实例详解
Jan 15 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
Python中基础数据类型 set集合知识点总结
Aug 02 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中对2个数组相加的函数
2011/06/24 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
.NET初级开发工程师面试题
2014/04/18 面试题
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
自我鉴定注意事项
2014/01/19 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
技术经济专业求职信
2014/09/03 职场文书
对照检查剖析材料
2014/09/30 职场文书
致运动员加油稿
2015/07/21 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL