@Slanty

Как повторить выполнение части кода, если найдена ошибка?

У меня есть генератор случайного выбора, прочтения и удаления файла из папки, он выдаёт ошибку если файл удалён. Как повторить код, до тех пор, пока генератор найдёт существующий файл?

Генератор:
import os
import random
import time

randFileIndex = random.randint(1, 3)

file = open(str(randFileIndex) + '.txt', 'r')
key = file.read()
print(key)
file.close()
time.sleep(2)
os.remove(str(randFileIndex) + '.txt')
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
deepblack
@deepblack Куратор тега Python
Оберни код в функцию, внутри неё код который открывает файл оберни в try/except.
В случае ошибки рекурсивно вызови эту функцию снова (контролируй глубину рекурсии).

Но правильней будет добавить имена файлов в список, и выбирать имена файлов случайно уже оттуда.
При физическом удалении файла, удалять элемент списка.

При открытии используй менеджер контекста:

with open('workfile') as f:
...     read_data = f.read()

https://docs.python.org/3/reference/datamodel.html...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы