如何访问一个单独文件中的数组?

-2 投票
2 回答
1531 浏览
提问于 2025-04-18 14:59

我正在学习Python,正在制作一个猜单词的游戏。在这个游戏中,用户需要选择一个单词的字母数量。

我打算创建几个数组,比如叫ThreeFourFive等等,里面分别存放对应字母长度的单词。我希望把每个数组放在自己的文件里,这样主程序就不会显得那么复杂。

接下来,我想用random.randint这个功能,从用户选择的字母数量对应的数组中随机选一个单词。有没有简单的方法可以做到这一点呢?

2 个回答

2

要访问文件,你需要用到 open 命令。

比如说,如果你想打开一个名为 three.dat 的文件来 读取 内容,你可以这样做:

with open("three.dat") as f:
    # do stuff

这里的 with 是用来设置文件的作用范围,这样你就不需要手动去关闭它。当 f 超出作用范围时,文件会自动关闭。

关于 open 的更多信息:

https://docs.python.org/2/library/functions.html#open

如果你只有相对少量的单词,比如十几个,可以考虑直接把它们写死在一个 dictlist 中,键是单词长度的字符串形式。

也就是说,像这样:

word_dict = {'3': ['and', 'cat', 'dog', 'not'],
             '4': ['four', 'moth'],
             '5': ['batch', 'match']
            }

但是,如果你想要有整整一个字典的单词,那直接写死的方法就不太可行了(虽然把这些单词放到不同的文件中也会很麻烦)。

最终,随着你对 Python 学习的深入,你可能会想要了解类似这样的内容,并把它应用到你的程序中:

http://wordlist.aspell.net/

2

首先,确保你所有的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在他的回答中提到的那样。

撰写回答