我需要从文件中打印一个随机行"长片"。
我的代码是:
import random
with open('Long films') as f:
lines = f.readlines()
print(random.choice(lines))
但它打印出这个错误:
Traceback (most recent call last):
line 3, in <module>
lines = f.readlines()
line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 36: ordinal not in range(128)
为避免此错误,我需要做什么?
答案 0 :(得分:2)
问题不在于打印,而在于阅读。看来你的文件有一些特殊的字符。尝试使用其他编码打开文件:
with open('Long films', encoding='latin-1') as f:
...
另外,您是否对您的语言环境进行了任何设置?您是否在文件顶部设置了任何编码方案?通常,python3将有助于&#34;将文字解码为utf-8
,因此通常不会出现此错误。