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 相关文章推荐
django1.8使用表单上传文件的实现方法
Nov 04 Python
python 显示数组全部元素的方法
Apr 19 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
python实现简单的单变量线性回归方法
Nov 08 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
python制作英语翻译小工具代码实例
Sep 09 Python
Python使用random模块生成随机数操作实例详解
Sep 17 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
Python多进程编程常用方法解析
Mar 26 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
Jun 24 Python
Python selenium如何打包静态网页并下载
Aug 12 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调用Linux命令权限不足问题解决方法
2015/02/07 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
JS定时器实例
2013/04/17 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
js模拟微博发布消息
2017/02/23 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
深入理解python中的atexit模块
2017/03/07 Python
Python字符串处理实例详解
2017/05/18 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
致裁判员加油稿
2014/02/08 职场文书
保护环境倡议书500字
2014/05/19 职场文书
校庆口号
2014/06/20 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis