我在记事本中保存了一个包含ANSI编码列表的文本文件 .
当我尝试使用Python中的以下脚本显示列表时,它会显示列表中的第一项,然后给出“output not utf-8”错误消息 .
with open("animals.txt") as f: content = f.readlines() for animal in content: print animal
有没有办法解决这个问题?
您正在读取一个字节字符串,然后将这些原始字节直接传输到您的输出,并且您的终端或IDE控制台抱怨字节流包含UTF-8中非法的序列 .
使用codecs.open()将文件读入unicode数据,然后让Python自动将unicode值编码到终端编解码器:
import codecs with codecs.open("animals.txt", 'r', encoding='mbcs') as f: content = f.readlines() for animal in content: print animal
或直接在文件上循环:
import codecs with codecs.open("animals.txt", 'r', encoding='mbcs') as f: for animal in f: print animal
mbcs 是Windows ANSI代码页的Python名称:
mbcs
仅限Windows:根据ANSI代码页(CP_ACP)编码操作数
也许你的意思是一个不同的,特定的Windows代码页;在这种情况下,选择正确的 cp 编解码器,例如 cp1250 或 cp1252 ,用于Microsoft的西欧Latin-1变体 .
cp
cp1250
cp1252
1 回答
您正在读取一个字节字符串,然后将这些原始字节直接传输到您的输出,并且您的终端或IDE控制台抱怨字节流包含UTF-8中非法的序列 .
使用codecs.open()将文件读入unicode数据,然后让Python自动将unicode值编码到终端编解码器:
或直接在文件上循环:
mbcs
是Windows ANSI代码页的Python名称:也许你的意思是一个不同的,特定的Windows代码页;在这种情况下,选择正确的
cp
编解码器,例如cp1250
或cp1252
,用于Microsoft的西欧Latin-1变体 .