ARHIMED501
@ARHIMED501
Я у мамы пока ещё не программист.

Как осуществить рандомное открытие текстовых файлов в 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 дня знаком с питоном, не бросайте сильно тапки))
  • Вопрос задан
  • 732 просмотра
Пригласить эксперта
Ответы на вопрос 3
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Есть два пути навскидку:
- добавлять наименование файла в set, перед открытием - проверять есть ли данный файл в set, если уже есть - открыть другой файл
- более лучший вариант - получить список файлов, отсортировать в случайном порядке, открывать по очереди

З.Ы. в приведенный кусок программы вникать желания не возникло, так как вставили его в вопрос без форматирования.
Ответ написан
@anerev
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)

    #код
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
открывай подряд, а кто спросит за рендом - в рыло
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы