我正在尝试编写一个程序来查询Word文档并从该文档中随机返回一行。当前,即使我应用random.choice(),也将返回文档中的每一行。关于如何解决这个问题有什么想法吗?
我在列表上运行len()并确认它正在返回多个变量,但整个列表仍在返回。
import random
filename = 'happy document.txt'
dictionary_list = []
with open(filename) as file_object:
lines = file_object.readlines()
for l in lines:
lines = [l.strip('\n') for l in lines]
dictionary_list.append(lines)
random_choice = random.choice(dictionary_list)
print(random_choice)
答案 0 :(得分:0)
您想要
dictionary_list.extend(lines)
将lines
“取消嵌套”到您的dictionary_list。
答案 1 :(得分:0)
您在每个循环中将整个行列表附加到import random
filename = 'happy document.txt'
with open(filename) as file_object:
lines = [line.strip('\n') for line in file_object]
random_choice = random.choice(lines)
print(random_choice)
上,因此,无论选择哪个行,它都是整个列表...
您可以这样做:
for line in file_object
请注意,readlines
会在文件的行上进行迭代,您无需先使用{{1}}并在行列表中再次进行迭代。