Python как хитро переместить файл

Рейтинг: 1Ответов: 1Опубликовано: 31.05.2023

Есть серверное решение на Ubuntu20, которое читает входную папку примерно раз в секунду. Если в нее через МС скопировать файл из другой папки, то все отрабатывается корректно. Если я копирую или переношу в нее файл в скрипте, то иногда не происходит корректной обработки. Логов в модуле загрузки нет, ошибки не возникают... до разработчика не достучаться. Предполагал что пока копируется файл (50-200 Кб) сервак начинает считывать файл и не дожидаясь полной загрузки приступает к обработке, в результате снова сбой. Пробовал следующие варианты переноса: shutil.move/Path().rename()/subprocess.Popen/os.replace/os.rename - раз через раз срабатывает. Может кто знает причину или иные варианты копирования ?

Ответы

▲ 0

Оператор shutil.copy2() дожидается полного выполнения копирования и только потом продолжает работу скрипта. Пример выполнения:

import shutil

src_file = '/путь_к_исходному_файлу'
dst_file = '/путь_к_целевой_папке/файл'

shutil.copy2(src_file, dst_file)