【发布时间】:2020-01-16 02:26:48
【问题描述】:
我有一个从文本文件中打印随机行的小程序。我想将已经选择的行保存在列表或其他内容中,这样下次就不会重复了。
示例
text_database.txt
- 这是一行
- 这是另一行
- 这是一条测试线
- 太糟糕了
这是一个显示输出是随机的并且程序重复行的示例——它不是终端中的直接输出:
This is a line
That sucks
That sucks
That sucks
This is a line
我的代码:
# Variable for text file
text_database = './text_database.txt'
...
with open (text_database) as f:
lines = f.readlines()
print(random.choice(lines))
我尝试了什么:
with open (text_database) as f:
lines_list = []
lines = f.readlines()
random_tmp = random.choice(lines)
if random_tmp not in lines_list:
lines_list.append(random_tmp)
print(random_tmp)
它不起作用,我需要帮助。谢谢各位。
【问题讨论】:
-
这是在您运行文件时从文件中随机打印一行然后程序结束吗?为了清楚起见,您想保存在程序的不同执行中打印了哪些行?编辑:否则我不明白为什么它打印 5 次,不确定
elif被包围的是什么 -
这是一个电报机器人,消息将在热敏打印机上打印。所以程序正在运行空洞时间,并在程序运行时从文件中打印行。第一个代码块效果很好。是的,我想保存已打印的行,因此程序下次将选择另一行。输出只是为了向您显示程序重复了这些行。这不是直接输出。它只打印一次。很抱歉造成混乱。
-
您没有更新
lines_list,这是您问题的根源吗?作为set,而不是list,它会更有效。
标签: python python-3.x file random text