Python Скачать файлы в Linux - Как не заменить файл с тем же именем? - PullRequest
0 голосов
/ 31 октября 2018

Я создал скрипт Python, который будет загружать файлы с сайта, используя селен и браузер Chrome в среде Linux. Поскольку я запускаю несколько экземпляров одновременно, я столкнулся с проблемой потери старых файлов. Старый файл часто заменяется новым, потому что они загружаются в одно и то же время.

В окнах файл будет храниться как имя файла (1), имя файла (2) ... и так далее. Но конкретно в Linux это не так. Как я могу обойти эту проблему? (Можно ли как-то изменить Chrome, чтобы отключить функцию замены?)

Примечание: У меня уже есть рабочая функция, которая переименовывает загруженный файл сразу после завершения загрузки. Однако иногда два файла завершают загрузку одновременно, и остается только один файл.

def rename():
    try:
        old_file = os.path.join(str(dlPath), "ClientReport.xlsx")
        new_file = os.path.join(str(dlPath), "ClientReport" + str(int(time.time())) + str(float(random.randint(0,100) + random.randint(1,99))/100) +'.xlsx')
        os.rename(old_file, new_file)
    except:
        print('No download to rename')

Большое вам спасибо за помощь!

1 Ответ

0 голосов
/ 31 октября 2018

Проверьте, существует ли файл первым:

if not os.path.exists(path):
    # Your copying logic
else:
    print('file not copied because it was already there') # something like this.
...