首页 > 解决方案 > 文本文件中的随机词

问题描述

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

标签: pythonfilerandomdrive

解决方案


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

推荐阅读