从文本fi读取时的Unicode编码

2024-09-27 09:31:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望你能帮忙。在

我试图获取一个字符串并检查它是否在名为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位置,在那里返回一个错误:

^{pr2}$

我想这与ascii和unicode之间的编码有关,因为Python正在尝试使用ascii编解码器解码unicode字符?在

如果我尝试

print (str((sys.getdefaultencoding())))

然后我得到“utf-8”作为默认编码。在

我卡住了,我能做什么?在


Tags: 字符串代码in编码inputiflineascii
2条回答

要确定使用记事本创建的文件的编码,请在记事本中打开该文件。从菜单中选择文件|另存为。在对话框底部附近,当前编码显示在下拉列表中(附截图)。在

现在你可以尝试使用编解码器.打开正如wim建议的那样。在

enter image description here

使用^{}模块打开文件:

import io
with io.open('PasswordList.txt', encoding='cp1252') as f:
    ...

但是,您确实需要知道数据的编码方式。文件本身通常不包含此信息,您必须知道它是如何创建的。在

相关问题 更多 >

    热门问题