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中replace方法实例分析
Aug 20 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
利用Python获取操作系统信息实例
Sep 02 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
对python列表里的字典元素去重方法详解
Jan 21 Python
对Python协程之异步同步的区别详解
Feb 19 Python
python pandas 时间日期的处理实现
Jul 30 Python
Python列表的切片实例讲解
Aug 20 Python
pycharm的python_stubs问题
Apr 08 Python
python 批量下载bilibili视频的gui程序
Nov 20 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
初学CAKEPHP 基础教程
2009/11/02 PHP
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
php正则表达式(regar expression)
2011/09/10 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
python抓取网页中的图片示例
2014/02/28 Python
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
百度吧主申请感言
2014/01/12 职场文书
项目建议书范文
2014/05/12 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
MySQL的索引你了解吗
2022/03/13 MySQL