我有一些代码可以从.txt文件中随机生成一个单词。我希望这个词也能打印出匹配的定义,但它不起作用
这就是我目前所拥有的
keywords = {'carrot': 'Green Vegetable.',
'apple': 'Red or Green fruit.',
'orange': 'Orange fruit.'}
print ("Here is your keyword")
import random
with open('keywords.txt') as f:
a = random.choice(list(f))
print (a)
print (keywords[a])
它成功生成随机关键字但未显示关键字的定义。 这是显示的错误
, line 11, in <module>
print (keywords[a])
KeyError: 'apple\n'
我认为错误是建议我的那些keywords.txt文件声称关键字包含\ n但是它肯定没有,我没有在我的代码或我的.txt文件中输入任何地方。
答案 0 :(得分:3)
这可能是因为空格字符,如\n
或只是你常规的旧空间。您可以random.choice(list(f)).strip()
删除它们。
答案 1 :(得分:0)
来自文件的行包含新行(\n
)字符。
你应该去除它们。
>>> 'apple\n'.rstrip()
'apple'
>>> 'apple\n'.rstrip('\r\n') # if you want strip only trailing CR and NL.
'apple'
with open('keywords.txt') as f:
a = random.choice([line.rstrip() for line in f])
print (a)
答案 2 :(得分:0)
你可以这样做:
a = a.replace('\n','')