在Python错误中打开文件

时间:2017-03-17 13:07:58

标签: python

在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()

1 个答案:

答案 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-15cp437查看https://pypi.python.org/pypi/chardethttps://docs.python.org/3/library/codecs.html#codecs.open