Python FTP conseguir el archivo y se descarga al local de

Recientemente, la demanda es la necesidad de abordar las otras imágenes en la ftp para proporcionar acceso al servidor local, el pensamiento previsto inicialmente es utilizar las operaciones de Shell, debido a que el depósito propiamente dicho también es compatible con los comandos FTP en una demanda de bucle puede lograr. Pero entonces pensar en la operación o toma pitón; luego procede Baidu en línea; sin excepción, estaba tan decepcionado que no se puede copiar directamente en uso. Así, en un código modificado. Todavía un poco de corazón para aprender cosas, siempre y cuando el código de contraseña de la cuenta ftp operación específica se ha modificado para utilizar el directorio correspondiente

Cabe señalar en este punto a destacar es el uso os.path.join

#! / Usr / bin / python 
# - * - coding:. UTF-8 - * -
"" "
la operación FTP común
" ""
de ftplib Importe el FTP
Importación OS
clase FTP_OP (Objeto):
DEF la __init __ (self, host, nombre de usuario, contraseña, puerto):
"" "
inicializar el FTP
: Host param: el IP del servidor FTP
: nombre de usuario param: el nombre de usuario FTP
: contraseña param: contraseña ftp
: puerto param: puerto FTP (por defecto 21)"
""
self.host = alojado
Ser. nombre de usuario = nombre de usuario
self.password = contraseña
self.port = Puerto
DEF FTP_CONNECT (Ser):
"" "
FTP conectado
: retorno:
" ""
Ftp = FTP ()
ftp.set_debuglevel (1) # no el modo de depuración se volvió
ftp.connect (host = self.host, puerto = self.port) # conectan el FTP
ftp.login (self.username, self.password) # Entrar en el FTP
ftp.set_pasv (Falso ) ## ftp hay necesidades modo activo y pasivo que se deben ajustar
retorno ftp
DEF download_file (ser, ftp_file_path, dst_file_path):
"" "
de la descarga ftp a su
: ftp_file_path param: ftp ruta del archivo de descarga
: param dst_file_path: ruta de almacenamiento local
: el regreso:
" ""
bUFFER_SIZE = 102400 # defecto es 8192
ftp = self.ftp_connect ()
Imprimir (ftp.getwelcome) () # ftp información de acceso
lista_de_archivos = ftp.nlst (ftp_file_path)
para nombre_archivo en lista_de_archivos:
imprimir ( "file_name" + file_name)
ftp_file = os.path.join (ftp_file_path, file_name)
print ( "ftp_file:" + ftp_file)
#write_file = os.path.join (dst_file_path, file_name)
write_file = dst_file_path + file_name ##在这里如果使用os.path.join进行拼接的话会丢失dst_file_path路径,与上面的拼接路径不一样
de impresión ( "write_file" + write_file)
si file_name.find ( 'png')> - 1 y no os.path. existe (write_file):
print ( "file_name:" + file_name)
#ftp_file = os.path.join (ftp_file_path, file_name)
#write_file = os.path.join (dst_file_path, file_name)
con abierto (write_file, "wb") como F:
ftp.retrbinary ( 'RETR% s' % ftp_file, f.write, buffer_size)
# f.close ()
ftp.quit ()

si __name__ == '__main__':
host = "192.168.110 **"
nombre de usuario = " ****"
password = "****"
port = 21
ftp_file_path = "/ erp-mall /" #FTP目录
dst_file_path = "/ root / 11" #本地目录
ftp = FTP_OP (host = servidor, usuario = nombre de usuario , contraseña = contraseña, port = puerto)
ftp.download_file (ftp_file_path = ftp_file_path, dst_file_path = dst_file_path)

Supongo que te gusta

Origin www.cnblogs.com/coolIt/p/12568975.html
Recomendado
Clasificación