python 读取txt中文文本

txt文本的存储形式有四种ANSI,UTF-8,Unicode,Unicode big endian。后面两种比较少见,说说前面两种吧。

普通的打开文件的操作是这样的:

# -*- coding: utf-8 -*-

path=u"输入你的路径"

f=open(path)

text=f.readlines()


当txt文件为ANSI格式时,需要如下转换:

for i in text:
    print i.decode("gbk")

或者 text =[i.decode("gbk") for i in text] 此时不会出现以下类似utf-8格式的不可见字符


当txt文件为UTF-8格式时,你会发现读取第一行的时候是可以读取的,但是匹配不了,原因是一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM),所以需要如下转换:

import codecs

if text[0][:3] == codecs.BOM_UTF8: 
    text[0] = text[0][3:] 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值