paramiko Importación Importación OS fecha y hora de importación de importación STAT S_ISDIR AS isdir DEF down_from_remote (sftp_obj, remote_dir_name, local_dir_name): "" "descarga de archivos remoto" "" archivo_remoto = sftp_obj.stat (remote_dir_name) SI isdir (remote_file.st_mode): # Carpeta no puede ser descargado directamente, tiene que seguir la circulación check_local_dir (local_dir_name) Imprimir ( 'para iniciar la carpeta de descarga:' + remote_dir_name) para remote_file_name en sftp.listdir (remote_dir_name): sub_remote = os.path.join (remote_dir_name, remote_file_name) sub_remote = sub_remote. Reemplazar ( '\\', '/') sub_local = la os.path.join (local_dir_name, remote_file_name) sub_local = sub_local.replace ( '\\', '/') down_from_remote (sftp_obj, sub_remote, sub_local) la cosa: # archivo descargado directamente imprimir ( 'empieza a descargar el archivo:' + remote_dir_name) sftp.get (remote_dir_name, local_dir_name) DEF check_local_dir (local_dir_name): "" "existe carpeta local, no existe, crear" "" Si no es así os.path.exists (local_dir_name): os.makdirs (local_dir_name) iF __name__ == "__main__": "" "programa de entrada principal. "" " # información de conexión del servidor nomb_sist_pral = 'puerto' nombre_usuario = 'su nombre de usuario' password = 'contraseña' 22 es = Puerto ruta del archivo remoto # (ruta absoluta requerida) dir_remoto = '/ home / Zhengquan / tumaoOffice / wpsweb-Demo-NodeJS / dir' # Ruta de almacenamiento de archivos local (ruta absoluta o relativa puede) local_dir =' D:ServerFile \\ \\ '+ STR (datetime.date.today ()) # conectan a un servidor remoto paramiko.Transport = T ((nomb_sist_pral, Port)) t.connect (usuario = nombre de usuario, contraseña = contraseña) SFTP = paramiko.SFTPClient.from_transport (T) # El archivo se inicia la descarga remotas down_from_remote (SFTP, dir_remoto, local_dir) # cerrar la conexión t.close ()