从文本文件中随机的单词

问题描述 投票:0回答:1

我有一个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中不再打印单词

python file random drive
1个回答
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')
© www.soinside.com 2019 - 2024. All rights reserved.