Python: 打开文本文件为列表,并通过它们检索数据

2024-05-13 01:18:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中打开和使用文本文件列表时遇到了问题…我需要在一个文本文件中使用字符串值(每个文本文件中有50个单词),三个文本文件…我需要从每个文本文件中随机使用一个单词,以便每次都造成侮辱……(莎士比亚对那些知道的人的侮辱)

  import random #Import my random

Column_picker = random.randint(0, 45) #Define my random between 0-50

with open("Column1.txt") as d:
    insults1 = list(d)

with open("Column2.txt") as f:
    insults2 = list(f)

with open("Column3.txt") as e:
    insults3 = list(e)

print("Thou", insults1[], insults2[], insults3[])

这就是我目前所拥有的,我感觉很接近,我只是无法从列表中获取正确的字符串..它要么获取整个列表,要么只是从中提取一个字母。。。。在


Tags: 字符串importtxt列表myaswithrandom
3条回答

有了功能肯定更好:

def random_word(fname):
    line_num = random.randint(0, 45)
    with open(fname) as f:
        lines = f.readlines()
    return lines[line_num]

print("Thou",
     random_word("Column1.txt"),
     random_word("Column2.txt"),
     random_word("Column3.txt"))

最后一行甚至可以更干净一点:

^{pr2}$

我假设每个侮辱都是文件中的一行,但是如果第一行是空格分隔的,我们可以用readlines替换{},并且我们可以添加一个位来忽略{},等等,但是想法还是一样的。在

import random #Import my random

Column_picker = random.randint(0, 45) #Define my random between 0-50
with open("Column1.txt") as d:
    insults1 = d.readlines()

with open("Column2.txt") as f:
    insults2 = f.readlines()

with open("Column3.txt") as e:
    insults3 = e.readlines()

print("Thou", insults1[Column_picker], insults2[Column_picker], insults3[Column_picker])

使用random.choice

import random

def random_word(filename):
    with open(filename) as file:
         return random.choice(file.readlines())

filenames = ["file.txt", "another.txt"]
print("Thou " + ' '.join(map(random_word, filenames)))

如果需要多次获取行,也可以使用^{}。在

相关问题 更多 >