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挑选文件夹里宽大于300图片的方法
Mar 05 Python
几个提升Python运行效率的方法之间的对比
Apr 03 Python
Python fileinput模块使用实例
May 28 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
Django中的Model操作表的实现
Jul 24 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
pandas 数据结构之Series的使用方法
Jun 21 Python
python2.7实现复制大量文件及文件夹资料
Aug 31 Python
使用PyCharm进行远程开发和调试的实现
Nov 04 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
python对文档中元素删除,替换操作
Apr 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模板,主要想体现一下思路
2006/12/25 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
4种JavaScript实现简单tab选项卡切换的方法
2016/01/06 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
详解Vue3.0 + TypeScript + Vite初体验
2021/02/22 Vue.js
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
python实现微信防撤回神器
2019/04/29 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
python的range和linspace使用详解
2019/11/27 Python
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
历史系毕业生自荐信
2013/10/28 职场文书
项目经理的岗位职责
2013/11/23 职场文书
美容院考勤制度
2014/01/30 职场文书
小学教师办公室制度
2014/02/03 职场文书
大学生活动策划方案
2014/02/10 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
新郎答谢词
2015/01/04 职场文书
民主评议党员个人总结
2015/02/13 职场文书
python 闭包函数详细介绍
2022/04/19 Python