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 相关文章推荐
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 Python
Python基础语法(Python基础知识点)
Feb 28 Python
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
Django如何实现内容缓存示例详解
Sep 24 Python
Python利用公共键如何对字典列表进行排序详解
May 19 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
python绘制简单彩虹图
Nov 19 Python
Python多项式回归的实现方法
Mar 11 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
python如何删除文件、目录
Jun 23 Python
详解python UDP 编程
Aug 24 Python
python制作一个简单的gui 数据库查询界面
Nov 19 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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php下使用无限生命期Session的方法
2007/03/16 PHP
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
php disk_free_space 返回目录可用空间
2010/05/10 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
php中根据变量的类型 选择echo或dump
2012/07/05 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
php提取微信账单的有效信息
2018/10/01 PHP
jquery 3D球状导航的文章分类
2010/07/06 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
python和bash统计CPU利用率的方法
2015/07/10 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
购买一个高级域名:BuyDomains
2018/03/11 全球购物
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
优质的学校老师推荐信
2013/10/28 职场文书
学前教育求职自荐信范文
2013/12/25 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
员工合理化建议书
2014/05/19 职场文书
保护环境的标语
2014/06/09 职场文书
中学生自我评价范文
2015/03/03 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
文员岗位职责范本
2015/04/16 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
管理失职检讨书范文
2015/05/05 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
如何使用vue3打造一个物料库
2021/05/08 Vue.js
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL