文本文件中的兰登词

时间:2019-02-23 11:47:44

标签: python file random drive

我有一个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中不再打印任何文字

1 个答案:

答案 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')