如何访问一个单独文件中的数组?
我正在学习Python,正在制作一个猜单词的游戏。在这个游戏中,用户需要选择一个单词的字母数量。
我打算创建几个数组,比如叫Three
、Four
、Five
等等,里面分别存放对应字母长度的单词。我希望把每个数组放在自己的文件里,这样主程序就不会显得那么复杂。
接下来,我想用random.randint
这个功能,从用户选择的字母数量对应的数组中随机选一个单词。有没有简单的方法可以做到这一点呢?
2 个回答
要访问文件,你需要用到 open
命令。
比如说,如果你想打开一个名为 three.dat 的文件来 读取 内容,你可以这样做:
with open("three.dat") as f:
# do stuff
这里的 with
是用来设置文件的作用范围,这样你就不需要手动去关闭它。当 f
超出作用范围时,文件会自动关闭。
关于 open
的更多信息:
https://docs.python.org/2/library/functions.html#open
如果你只有相对少量的单词,比如十几个,可以考虑直接把它们写死在一个 dict
的 list
中,键是单词长度的字符串形式。
也就是说,像这样:
word_dict = {'3': ['and', 'cat', 'dog', 'not'],
'4': ['four', 'moth'],
'5': ['batch', 'match']
}
但是,如果你想要有整整一个字典的单词,那直接写死的方法就不太可行了(虽然把这些单词放到不同的文件中也会很麻烦)。
最终,随着你对 Python 学习的深入,你可能会想要了解类似这样的内容,并把它应用到你的程序中:
首先,确保你所有的Python文件都放在同一个文件夹里。
完成这个步骤后,你可以简单地使用 from name_of_word_file import name_of_word_list
来导入你需要的内容。
你可以为每个文件写一行这样的代码,但我觉得把所有的单词列表放在一个文件里,然后导入特定的单词列表变量会更简单。
至于从列表中选择一个单词,可以使用random.choice这个方法,它可以随机从列表中选一个元素,像这样:
from random import choice
from words import four_letter_words
print choice(four_letter_words)
使用列表和导入它们的方法是完全可以的,但我建议你看看把单词列表保存到文本文件中的方法,就像Ken在他的回答中提到的那样。