从文本文件打印随机行时出错

时间:2017-08-17 11:14:43

标签: python python-3.x random text-files

我需要从文件中打印一个随机行"长片"。

我的代码是:

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)

为避免此错误,我需要做什么?

1 个答案:

答案 0 :(得分:2)

问题不在于打印,而在于阅读。看来你的文件有一些特殊的字符。尝试使用其他编码打开文件:

with open('Long films', encoding='latin-1') as f:
   ...

另外,您是否对您的语言环境进行了任何设置?您是否在文件顶部设置了任何编码方案?通常,python3将有助于&#34;将文字解码为utf-8,因此通常不会出现此错误。