我有一个包含第一个和最后一个“音节”的文本文件,用[part1]和[part2]划分:
[part1]
Ae
Di
Mo
Fam
[part2]
dar
kil
glar
tres
我只想在[part1]和[part2]之间选择一条随机线,然后在[part2]和文件结尾之间选择另一条随机线,并将这两条线连接在一起(例如“Aedar”、“Moglar”)以创建随机名称。
但是,我不确定如何使用readline()有效地解析文本文件。有没有比按顺序扫描每一行,并将它们存储在一个列表中更好的方法,从中我可以选择一个随机元素?
Tags:
返回(随机):
改为将字典序列化(pickle)到文件。
示例:
在某个时刻,您将不得不通读整个文件,除非您事先知道有多少前缀和后缀。因为我假设您不需要,或者它可以更改,并且您不想维护一个数字来存储它,所以您必须通读该文件,readline()是一个很好的方法。
但是,可以对文本文件进行预处理,使其使用另一种格式,例如pickle文件。换言之,将文本文件读入词典,并对该词典进行pickle操作。字典可能看起来像这样:
dic = {'prefixes': ['Ae' ,'di', ...], 'suffixes': ['dar', 'kil', ...]}
从数组的长度可以确定最大随机数是多少。它应该比每次逐行读取整个文件更有效率。如果不是,至少这是一个更优雅的解决方案。
相关问题 更多 >
编程相关推荐