[英]Unicode encoding when reading from text file
希望您能提供帮助。
我正在尝试获取一个字符串,并检查它是否在名为PasswordList的文本文件中。 这是我为此编写的代码:
Password = input('Enter a password: ')
with open('PasswordList.txt') as f:
Found = False
for line in f:
if Password in line:
print(line)
Found = True
if not Found:
print('Password is not in list')
如果我输入类似字母“ e”的内容,它将返回包含它的行,直到到达位置4583并返回错误为止:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 4853: ordinal not in range(128).
我猜想这与ascii和unicode之间的编码有关,就像在Python中尝试使用ascii编解码器解码unicode字符一样?
如果我尝试
print (str((sys.getdefaultencoding())))
然后我得到“ utf-8”作为默认编码。
我被卡住了,该怎么办?
使用io
模块打开文件:
import io
with io.open('PasswordList.txt', encoding='cp1252') as f:
...
但是,您确实需要知道数据的编码方式。文件本身通常不包含此信息,因此必须知道如何创建。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.