我正在构建一个猜谜游戏来帮助我学习python。它的目标是将我的计算机词典文件en_Gb.dic读取为字符串列表-选择一个随机单词,然后与用户一起播放各种hangman。
.dic文件的内部看起来像这样:
abalone/MS
abandon/7LdS
abandoner/M
abandonware
abase/SGLD
abaser/M
abash/LGhSD
abashed/UY
abate/DLGS
abated/U
abater/M
abatis/S
abattoir/SM
即一个单词,然后可能是一个/,后跟一些符号,用户不需要猜测。
我试过了
F=open(FileAdress,"r")
print(F)
data=F.readlines()
但是我在data = F.readlines()中遇到错误,并且我的直觉是会有一种更复杂的方法来执行此操作-因为以字符串列表的形式读取文件是正常的事情。
错误是:
Traceback (most recent call last):
File "C:/Users/Moshe/.PyCharmCE2019.1/config/scratches/scratch_guessing_game.py", line 4, in <module>
data=F.readlines()
File "C:\Users\Moshe\AppData\Local\Programs\Python\Python37\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 2525: character maps to <undefined>
答案 0 :(得分:0)
所以您想阅读它并将所有值存储在列表中? 如果我理解正确,则可以使用以下代码:
with open(Path_to_file, 'r') as f:
lines = f.readlines()
print(lines ) # output: ['abalone/MS\n', 'abandon/7LdS\n', 'abandoner/M\n', 'abandonware\n', 'abase/SGLD\n', 'abaser/M\n', 'abash/LGhSD\n', 'abashed/UY\n', 'abate/DLGS\n', 'abated/U\n', 'abater/M\n', 'abatis/S\n', 'abattoir/SM']
答案 1 :(得分:0)
尝试像这样打开文件时指定编码。
file = open(filepath, 'r', encoding='utf8')
或尝试以二进制文件形式打开文件。
file = open(filepath, 'rb')
如果不尝试使用您正在使用的实际文件,我不知道什么可行。