Python ftplib – загрузка нескольких файлов?
Вопрос
Я погуглил, но нашел только один файл...и я пытаюсь загрузить все файлы из локального каталога в удаленный каталог FTP.Есть идеи, как этого добиться?
Решение
с петлей?
редактировать:в универсальном случае загрузка только файлов будет выглядеть так:
import os
for root, dirs, files in os.walk('path/to/local/dir'):
for fname in files:
full_fname = os.path.join(root, fname)
ftp.storbinary('STOR remote/dir' + fname, open(full_fname, 'rb'))
Очевидно, вам нужно следить за конфликтами имен, если вы просто сохраняете такие имена файлов.
Другие советы
Посмотри на Сценарии Python, необходимые для загрузки файлов из JSON-Call и следующий FTPlib-операция:почему одни загружают, а другие нет?
Хотя исходная позиция отличается от вашего вопроса, в Отвечать из этого первого URL-адреса вы видите пример конструкции для загрузки с помощью ftplib файла json и файла xml:посмотрите строку сценария 024 и далее.
Во втором URL-адресе вы видите некоторые другие аспекты, связанные с загрузкой дополнительных файлов.
Также применимо для других типов файлов, кроме json и xml, очевидно, с другой «записью» перед двумя последними разделами, которые определяют и реализуют функцию FTP_Upload.
Создайте пакетный файл FTP (со списком файлов, которые необходимо передать).Используйте Python для запуска ftp.exe с опцией «-s» и передайте список файлов.
Это неуклюже, но, видимо, FTPlib не принимает несколько файлов в своей команде STOR.
Вот пример пакетного файла FTP.
*
OPEN inetxxx
myuser mypasswd
binary
prompt off
cd ~/my_reg/cronjobs/k_load/incoming
mput *.csv
bye
Если бы вышеуказанное содержимое было в файле с именем «abc.ftp», тогда моя команда ftp была бы такой:
ftp -s abc.ftp
Надеюсь, это поможет.