Не создается файл
if os.path.isfile(file_path) == True:
old_time = (datetime.datetime.fromtimestamp(os.path.getctime(file_path)).strftime('%Y-%m-%d %H.%M.%S'))
os.rename(f"Tasks/{user['username']}.txt", f"Tasks/old_{user['username']}_{old_time}.txt")`
Если файл для пользователя уже существует, то существующий файл переименовать, добавив в него время составления этого старого отчёта в формате "old_Antonette_2020-09-23T15:25.txt"
Таким образом, актуальный отчёт всегда будет без даты в названии. Старые отчёты не удаляются, а переименовываются.
Как исправить ошибку? На третьем выполнении скрипта вылезает эта ошибка
Ответы (2 шт):
Во первых никогда не пиши:
if os.path.isfile(file_path) == True:
Isfile возвращает true или false, надо так :
if os.path.isfile(file_path):
Мелочь , но сразу говорит о твоём понимании языка и об опыте.
Как вариант , попробуй:
shutil.copy(file, new_file)
os.remove(file)
Из вашей ошибки видно что файл уже существует! Следовательно вы уже создавали файл с таким пользователем и временем! Попробуйте добавить мини-id в имя файла:
import random
# Ваш остальной код
if os.path.isfile(file_path):
old_time = (datetime.datetime
.fromtimestamp(os.path.getctime(file_path))
.strftime('%Y-%m-%d %H.%M.%S'))
os.rename(
f"Tasks/{user['username']}.txt",
f"Tasks/old_{user['username']}_{old_time}_id{hex(random.randint(0, 2**16)}.txt"
)
Я постарался привести хоть немного это к PEP8
