Задать вопрос
@Crusade

Как сохранять файлы с одинаковыми именами?

С помощью скрипта написанного на python выполняю скачивание файлов с сайта и сохранение по определенному пути в одну папку. Столкнулся с трудностью, если скачиваются несколько файлов с одинаковыми названиями и сохраняются в одну папку, то сохраняется только один файл. Как сделать так, чтобы при сохранении скачиваемых файлов, выполнялась проверка, и к примеру если файл с таким именем уже существует, то в название сохраняемого файла добавлялся любой символ. Чтобы исключить потерю скачиваемых файлов. Пример кода по сохранению файлов ниже:

with open(os.path.join(name, file, f"{doc}.zip"), 'wb') as file:  / при сохранении в названии файла  используется переменная doc
        file.write(response.content)                                             / выполняться сохранения файла
  • Вопрос задан
  • 236 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
  1. Захватываешь блокировку;
  2. Проверяешь наличие файла на диске:
    • Если нет, начинаешь скачивание в файл с тем же именем;
    • Если есть, начинаешь скачивать в файл с другим именем;
  3. Отпускаешь блокировку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@austnv
Python, HTML, JS, CSS
если добавить текущее время в название файла, то оно будет гарантированно уникальным, потому что каждый файл обрабатывается в разные моменты времени:

from datetime import datetime
with open(os.path.join(name, file, f"{doc}_{datetime.now()}.zip"), 'wb') as file:
        file.write(response.content)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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