我有一个file.txt文件,每次我运行该程序时,程序都会从许多单词中选择一个随机单词。每行包含一个单词。为了防止一个单词出现两次,我创建了另一个文件file2.txt,以便可以将绘制的单词复制到file2.txt中,然后从绘制该单词的file.txt中删除。 绘制完所有单词后(随着我继续运行该程序)。然后,我将所有单词从file2.txt复制到file.txt(原始文件)。就像重置所有内容以便下次准备程序一样
我的问题是,假设我有1000多个字,这是最好的方法吗?
到目前为止,这是我的代码:
import random
mainFile = r"C:\Users\Son\file.txt"
lines = [line.rstrip('\n') for line in open(mainFile)]
rand = random.choice(lines)
print(rand)
secondFile = r"C:\Users\Son\file2.txt"
到目前为止,我的代码从file.txt打印随机单词。如何将随机单词保存到file2.txt,然后从file.txt中删除它。
我还希望在我关闭程序时或在完成file.txt中的所有单词后,将file2.txt中的所有单词复制回file.txt。那么程序应该在file.txt中不再打印任何文字
答案 0 :(得分:0)
1,000(甚至100,000)个单词通常足够小以适合内存。
您可以使用:
PATH = r'file1.txt'
with open(PATH, 'r') as f:
unique_words = set(f.read().splitlines())
with open(PATH, 'w') as f:
while unique_words:
f.write(unique_words.pop() + '\n')