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