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中列表生成式的用法
Mar 31 Python
python访问类中docstring注释的实现方法
May 04 Python
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
Python网络编程详解
Oct 31 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
python实现百度语音识别api
Apr 10 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
python添加菜单图文讲解
Jun 04 Python
python如何通过twisted搭建socket服务
Feb 03 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
Dec 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提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
php银联网页支付实现方法
2015/03/04 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
让焦点自动跳转
2006/07/01 Javascript
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
Javascript 多物体运动的实现
2014/12/24 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
js正则相关知识点专题
2018/05/10 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
python使用xmlrpc实例讲解
2013/12/17 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
python如何将两个txt文件内容合并
2019/10/18 Python
python利用dlib获取人脸的68个landmark
2019/11/27 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
Python中Selenium模块的使用详解
2020/10/09 Python
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
犯错检讨书
2014/02/21 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
感恩教育主题班会
2015/08/12 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle