Я пытаюсь написать сценарий Python, который работает в Windows. Файлы копируются в папку каждые несколько секунд, и я каждые 30 секунд проверяю эту папку на имена новых файлов, которые были скопированы в папку после последнего опроса.Получение времени копирования файла в папку (Python)
Я попытался использовать одну из функций os.path.getXtime(folder_path)
и сравнить ее с меткой времени моего предыдущего опроса. Если значение getXtime больше, чем временная метка, я работаю над этими файлами.
Я попытался использовать функцию os.path.getctime(folder_path)
, но это не сработало, потому что файлы были созданы до того, как я написал скрипт. Я также пробовал os.path.getmtime(folder_path)
, но измененные времена обычно меньше, чем временная метка опроса.
И наконец, я попробовал os.path.getatime(folder_path)
, который работает в первый раз, когда файлы были скопированы. Проблема в том, что я также читаю файлы, когда они были в папке, поэтому время доступа постоянно обновляется, и я снова и снова повторяю одни и те же файлы.
Я не уверен, что это лучший способ или функция для этого.
Я бы также добавил, что опрос файлов, которые появляются в каталоге, является довольно плохим способом надежной передачи информации. Это кажется легким, и я полагаю, почему он так популярен. Но он ужасно подвержен ошибкам и буквально невозможно реализовать надежно без каких-либо внеполосных сообщений, чтобы гарантировать, что файлы, которые «появляются» в каталоге, завершены. Без этой внеполосной связи невозможно ** узнать, что новый файл в каталоге завершен. Никогда не задумывайтесь о том, какие файлы являются новыми. «Работает большую часть времени» - это не то, что я ** никогда не хочу доставить. –