(38条消息) 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)

相关推荐