[original outputexpected outputpath logic to save file in local directoryprinting local_pathlocal_path-before-os.path.join
我是Python的新手。使用python程序,我能够从FTP服务器(使用Paramiko,ftplib,os库)将多个源文件下载到本地计算机。
这些源文件位于FTP服务器内部的特定目录中。
仅当我在本地计算机中提供了与FTP目录路径相同的目录路径时,才能够下载源文件。>
我能够将文件下载到与远程目录相同的C:\ data \ abc \ transfer中。代码要求我提供相同的目录。
但是我想将所有文件下载到所需目录C:\ data_download \请帮助我。
下面是代码:
import paramiko import ftplib import os from ftplib import FTP from paramiko import sftp , pkey Ftp_Server_host ='[email protected]' Ftp_username ='qsdfg12' Ftp_password='xxxxx' Ftp_source_files_path = '/data/abc/transfer/' ftp =FTP(Ftp_Server_host) ftp.login(user=Ftp_username,passwd=Ftp_password) local_path ='C:\data_download\' ftp_ssh = paramiko.SSHClient() ftp_ssh.load_system_host_keys() ftp_ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ftp_ssh.connect(hostname=Ftp_Server_host,username=Ftp_username,password=Ftp_password) print("connected to remote server :" +Ftp_Server_host) print() ftp_clnt = ftp_ssh.open_sftp() ftp_clnt.chdir(Ftp_source_files_path) print("current directory of source file in remote server :" +ftp_clnt.getcwd()) print() files_list = ftp.nlst(Ftp_source_files_path) for file in files_list: print("local_path :" +local_path) local_fn = os.path.join(local_path,file) print(local_fn) print('Downloading files from remote server :' +file) local_file = open (local_fn ,"wb") ftp.retrbinary("RETR "+file, local_file.write) local_file.close() print() print("respective files got downloaded") print() ftp_clnt.close() ftp_ssh.close()
原始输出预期输出路径逻辑,用于将文件保存在本地目录中,打印出local_path local_path-before-os.path.join我是Python的新手。使用python程序,我能够下载...
open
功能的完整路径,而不仅仅是目录名称。要组装完整的本地路径,请从ftp.nlst
返回的远程路径中获取文件名,并将它们与目标本地目录路径合并。