Подтвердить что ты не робот

Как я могу установить последнее измененное время файла из python?

У меня есть python script, который загружает файл по FTP с помощью ftplib.

Мой текущий код загрузки похож на пример в ftp lib docs:

ftp.retrbinary('RETR README', open('README', 'wb').write)

Теперь у меня есть требование, чтобы файл, загруженный по FTP, должен иметь такое же последнее измененное время, что и файл на самом FTP-сервере. Предполагая, что я могу проанализировать время с ftp.retrlines('list'), как установить время изменения в загруженном файле?

Я использую ОС на основе unix, если это имеет значение.

4b9b3361

Ответ 1

Если вы хотите сделать это прямо из python, вы ищете os.utime. docs может предоставить вам больше информации.

Ответ 2

Используйте os.utime:

import os

os.utime(path_to_file, (access_time, modification_time))

Ответ 3

Есть два способа сделать это. Один из них - пример os.utime, выше которого требуется, если вы устанавливаете метку времени в файле, который не имеет контрольная статистика. Однако, если вы копируете файлы с помощью "shutil.copy()" , у вас есть файл ссылки. Затем, если вам нужны биты разрешения, время последнего доступа, время последней модификации и флаги также скопированы, вы можете использовать "shutil.copystat()" сразу после "shutil.copy()" .

Я понятия не имею, почему они не добавляют флаги в "shutil.copy()" , что делает это в одной команде. Похоже, что это было реализовано разными авторами. Один реализовал копию и один реализовал копировать, чтобы заполнить недостающую функцию в первом.

И тогда есть "shutil.copy2", который предназначен для обоих одновременно...