Как осуществить рандомное открытие текстовых файлов в PYTHON'E без повторений?
Имеется программа, она должна открывать рандомно один текстовый файл и обрабатывать информацию, после рандомно открывать другой без повторений и т.д.
Проблема: открывает с повторениями.
import random
r=1
i=0
while r < 10:
print("Задание №" + str(r))
a = int(random.randint(10, 14))
f = open(str(a)+".txt", encoding="utf-8")
b= f.readlines(1255)
print(b[0])
print("1)"+str(b[-4]))
print("2)"+str(b[-3]))
print("3)"+str(b[-2]))
print("4)"+str(b[-1]))
v = input(print("Введите номер правильного ответа:"))+";\n"
for c in b:
if -1 != c.find(";"):
print("((ПРАВИЛЬНЫЙ ОТВЕТ:"+str(c)+"))\n ((ВАШ ОТВЕТ"+str(v)+"))" )
if v == c:
print("МОЛОДЕЦ")
i+=1
else:
print("Неправильный ответ")
print("Правильный ответ:"+str(c))
if r == 5:
break
r += 1
print("Правильно ответов:"+ str(i))
((даня 17 годиков, 2 дня знаком с питоном, не бросайте сильно тапки))
Есть два пути навскидку:
- добавлять наименование файла в set, перед открытием - проверять есть ли данный файл в set, если уже есть - открыть другой файл
- более лучший вариант - получить список файлов, отсортировать в случайном порядке, открывать по очереди
З.Ы. в приведенный кусок программы вникать желания не возникло, так как вставили его в вопрос без форматирования.
import os
import random
path = os.listdir('путь/к/папке с txt')
while path:
file = random.choice(path)
with open(file, 'r') as f:
b = f.readlines()
path.remove(file)
#код