У меня есть сценарий Python, который проверяет каталог раскладки и обрабатывает все найденные файлы, а затем удаляет их.
Как я могу убедиться, что не забираю файл, который все еще записывается процессом, который помещает файлы в этот каталог?
Мой тестовый пример довольно прост. Я копирую и вставляю 300 МБ файлов в каталог раскладки, и часто скрипт захватывает файл, который все еще пишется. Он работает только с частичным файлом, а затем удаляет его. Это вызывает ошибку операции с файлом в ОС, так как файл, в который он производил запись, исчез.
Я попытался заблокировать файл (с помощью модуля FileLock) перед тем, как открыть / обработать / удалить его. Но это не помогло.
Я подумал о том, чтобы проверить время модификации файла, чтобы избежать чего-либо в течение X секунд. Но это кажется неуклюжим.
Мой тест на OSX, но я пытаюсь найти решение, которое будет работать на основных платформах.
Я вижу здесь похожий вопрос ( Как проверить, записывается ли файл? ), но четкого решения не было.
Спасибо