在单独的文件中访问数组?

时间:2014-07-28 00:15:42

标签: python arrays python-2.7

我正在学习Python。我正在构建一个刽子手应用程序,我让用户选择单词中的字母数量。

我有一个名为ThreeFourFive的数组,以及这些数组中相应长度的单词。我想让每个数组都成为自己的文件,所以主脚本并不那么麻烦。

然后我希望能够在用户指出他们想要的字母数量后,使用random.randint从其中一个数组中选择一个单词。有一个简单的方法吗?

2 个答案:

答案 0 :(得分:2)

要访问文件,您需要open命令。

例如,要打开名为 three.dat read 文件,您可以这样做:

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

with设置文件句柄的范围,这样您就不需要显式关闭它。当f超出范围时,文件将自动关闭。

有关open的更多信息:

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

如果您只有相对较少的单词数量(例如十几个)适合每个存储桶,那么将它们硬编码到dict list中可能是最佳/最可行的s,其中键是转换为字符串的长度。

即。形式的东西:

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

但是,如果你想拥有一个完整字典的单词,那么硬编码方法是不可行的(尽管将它们分成单独的文件也是乏味的)。

最终,随着您学习 Python 的进展,您可能希望研究类似的内容并将其调整到您的程序中:

http://wordlist.aspell.net/

答案 1 :(得分: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在答案中提到的那样。