Рэндон слово из текстового файла - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть файл 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.

Также я хочу, чтобы все слова в file2.txt были скопированы обратно в file.txt, когда я закрываю программу или когда все слова в file.txt завершены.тогда программа не должна печатать больше слов в файле .txt

1 Ответ

0 голосов
/ 26 февраля 2019

1000 (или даже 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')
...