所以假设我有5个文本文件a.txt,b.txt,c.txt,d.txt,e.txt。我希望能够从每个内容中读取内容并从每个内容中调用随机行 a:来自a.txt的rand b:来自b.txt的rand 等
到目前为止,这适用于一个文本文件...import random
contents=[]
with open("a.txt") as a:
for line in a:
line=line.strip()
contents.append(line)
print "Welcome!"
print ""
print "a:", contents[random.randint(0,len(contents)-1)]
欢呼任何帮助< 3
答案 0 :(得分:1)
使用foo循环。
使用randmo.choice代替random.randint:
import os
import random
for filepath in ['a.txt', 'b.txt', 'c.txt', 'd.txt', 'e.txt']:
with open(filepath) as f:
lines = [line.strip() for line in f]
print os.path.splitext(os.path.basename(filepath))[0], ':', random.choice(lines)
答案 1 :(得分:0)
您可以将逻辑放入一个将文件名作为参数的函数中,同时将随机选择放入该函数中:
import random
def pick_random(filename):
contents=[]
with open(filename) as a:
for line in a:
line=line.strip()
contents.append(line)
return contents[random.randint(0,len(contents)-1)]
print "Welcome!"
print ""
print "a:", pick_random("a.txt")
print "b:", pick_random("b.txt")
您可以为要从中选择一行的每个文件调用该函数,方法是逐个调用它们,或者将所有文件放入列表并循环遍历它们。
这是对代码的直接扩展,但请考虑使用falsetru的答案来获得更清晰的解决方案。使用random.choice可以更明确地了解您想要完成的任务。