解压缩文件并从ftp下载

时间:2016-05-03 17:22:22

标签: python python-2.7 ftplib

我正在尝试解压缩位于我的ftp服务器中的文件并快速下载。

ftp=ftplib.FTP('myftplink')
ftp.login('username','password')

for filename in files_list:
     os.chdir(dir)
     local_file=os.path.join(os.getcwd(),filename)
     ftp.retrbinary('RETR %s'%filename,open(filename,'wb').write)

     with zipfile.ZipFile(filename,'r') as z:
         z.extractall()

有了这个,我可以下载zip文件并将其解压缩到文件夹中,但有没有办法解压缩并只下载解压缩文件而不是下载zip文件。

1 个答案:

答案 0 :(得分:2)

您通常无法在python或FTP中使用此FTP库来解压缩存档。解压缩必须在客户端或服务器端进行。在评估程序尝试下载的压缩存档的大小后,可以做出明智的决定。

您需要访问权限以及在远程服务器上运行命令的权限,例如使用SSH以在那里解压缩。如果SSH服务器正在远程主机上运行并且您可以访问它,则可以使用fabric解压缩所需文件或在其上运行其他命令,然后通过Fabric::put {{3}下载文件使用您当前使用的库的FTP或FTP。