在python中打开文件时,我收到错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)
我的代码是
p=open("afile.txt","r")
file=p.read()
答案 0 :(得分:0)
这是一个UnicodeError。您正尝试使用ASCII编解码器读取Unicode字符。
尝试:
import codecs
p = codecs.open("afile.txt", "r", "utf-8")
f = p.read()
或
import codecs
p = codecs.open("afile.txt", "r", "utf-16")
f = p.read()
你也应该考虑使用:
with codecs.open("afile.txt", "r", "utf-8") as f:
# Do whatever you want with f
这使得它可以在您退出with
语句时自动关闭文件。
您还可以尝试iso-8859-15
或cp437
查看https://pypi.python.org/pypi/chardet和https://docs.python.org/3/library/codecs.html#codecs.open。