Python ftplib - cargar varios archivos?
Pregunta
He buscado en google pero sólo pude encontrar cómo subir un archivo...y estoy tratando de cargar todos los archivos del directorio local a remoto directorio ftp.Alguna idea de cómo lograr esto?
Solución
con el bucle?
editar : en el caso universal de subir sólo los archivos se vería así:
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'))
Obviamente, es necesario mirar hacia fuera para conflictos de nombres si acaba de preservar los nombres de esta manera.
Otros consejos
Mira Python-scriptlines necesario para hacer subir archivos JSON-Llamada y el próximo FTPlib-operación:por qué algunas subidas, pero hay otros que no?
Aunque una diferente posición de partida de su pregunta, en el Respuesta de la primera url que usted vea un ejemplo de la construcción a subir por ftplib un json-plus de archivo xml archivo:mira scriptline 024 y más.
En la segunda dirección url se puede ver algunos otros aspectos relacionados con la carga de varios archivos.
También aplica para otros tipos de archivo de json y xml, obviamente con diferentes 'entrada' antes de las 2 secciones finales que definen y dan cuenta de la FTP_Upload-función.
Crear un archivo de FTP por lotes (con una lista de archivos que necesita para transferir). El uso de Python para ejecutar ftp.exe con la opción "-s" y pasan en la lista de archivos.
Este es kludgy pero al parecer el ftplib no tiene aceptar múltiples archivos en su comando STOR.
Aquí es un archivo por lotes de FTP muestra.
*
OPEN inetxxx
myuser mypasswd
binary
prompt off
cd ~/my_reg/cronjobs/k_load/incoming
mput *.csv
bye
-
Si los contenidos superiores estaban en un archivo llamado "abc.ftp" - entonces mi comando ftp sería
ftp -s abc.ftp
Espero que ayude.