Мне нужно найти последний созданный файл в папке FTP. Однако FTP-сервер не возвращает полные отметки времени для файлов с помощью команды LIST (без года):
drwxr-xr-x 2 owner group 0 Nov 9 17:29 archive
drwxr-xr-x 2 owner group 0 Nov 9 17:35 category
drwxr-xr-x 2 owner group 0 Jan 9 07:21 images
И команда MLSD не поддерживается.
Поэтому сейчас я проверяю метку времени каждого файла с помощью команды MDTM. Есть более эффективный способ?
Я использую ftplib обертка.
человек ftp говорит:
ls [remote-directory] [local-file] Print a listing of the contents of a directory on the remote machine. The listing includes any system-dependent information that the server chooses to include; for example, most UNIX systems will produce output from the command ‘ls -l’. (See also nlist.) If remote-directory is left unspecified, the current working directory is used. If interac‐ tive prompting is on, ftp will prompt the user to verify that the last argument is indeed the target local file for receiving ls output. If no local file is specified, or if local-file is ‘-’, the output is sent to the terminal.
Так, в большинстве систем UNIX выводится команда «ls -l» и такая команда показывает либо дату, либо дату и время, в зависимости от «возраста» файла:
-rw-rw-r-- 1 user group 4 ene 21 12:40 keepalive.out
-rw-rw-r-- 1 user group 525292 oct 4 2013 Linux.svg
Учитывая, что вы после команды FTP для надежного и эффективного получения меток времени, Боюсь, что ваш подход (команда MDTM) - единственный, не включающий в себя программирование.
Вы можете попробовать ftputil. Хотя это не стандартный модуль Python и не входит в комплект батарей, он имеет те же функции, что и os.stat. Это позволяет вам получить подробную статистику файла, такую как дата создания, размер файла и т. Д. Это высокоуровневый интерфейс ftplib.
Вы также можете найти эту ссылку полезной -