在Python中读取带有法语字符的文件
我想阅读一个包含Python中法语字符的文件,例如“é”。我使用以下几行代码来实现这一点:在Python中读取带有法语字符的文件,python,file,python-unicode,Python,File,Python Unicode,我想阅读一个包含Python中法语字符的文件,例如“é”。我使用以下几行代码来实现这一点: import codecs with codecs.open(r'C:\Users\chsafouane\Desktop\saf.txt', encoding='ascii') as f: for line in f.readlines(): line 然而,我得到了一份工作 UnicodeDecodeError: 'ascii' codec can't decode byte
import codecs
with codecs.open(r'C:\Users\chsafouane\Desktop\saf.txt', encoding='ascii') as f:
for line in f.readlines():
line
然而,我得到了一份工作
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 3: ordinal not in range(128)
为了重现错误,我试图读取的文件只包含一个单词:“Accélération”。有没有办法做到这一点?对于只包含“Accélération”一词的外商投资企业,utf-8编码不起作用,它返回以下错误
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 3: invalid continuation byte
正如@scirocorics所提出的,latin-1
编码工作良好,并且返回正确的单词。因此,有效的代码块如下所示:
import codecs
with codecs.open(r'C:\Users\chsafouane\Desktop\saf.txt', encoding='latin1') as f:
for line in f.readlines():
print(line)
encoding='utf-8'
?如果文件是在Windows上创建的,encoding='latin1'
可能比encoding='utf-8'
更好地检索正确的characters@sciroccorics是的,拉丁1编码工作得很好。谢谢您!