2011-07-24 616 views

回答

2

的retrbinary功能在ftplib库需要被用于检索到的数据的每个块调用一次的回调函数。您自己编写此回调函数,因此可以更改保存到的文件夹文件。

一些示例代码:

#!/usr/bin/env python 

import sys 
from ftplib import FTP 



ftphost, file_to_retrieve, output_path = sys.argv[1:4] 

print "Retreiving %(file_to_retrieve)s from FTP host %(ftphost)s, saving to %(output_path)s" % locals() 

ftp = FTP(ftphost) 
ftp.login() 

outfile = None 
def data_callback(data): 
    global outfile 
    if outfile is None: 
     outfile = open(output_path, 'w') 

    outfile.write(data) 

ftp.retrbinary("RETR %s" % file_to_retrieve, data_callback) 

if outfile is not None: 
    outfile.close() 

中检索ftp://ftp.sunet.se/pub/Linux/kernel.org/linux/docs/man-pages/man-pages-3.32.tar.gz,并保存为/tmp/man-pages.tar.gz,如下运行此代码:

$ python testftp.py ftp.sunet.se /pub/Linux/kernel.org/linux/docs/man-pages/man-pages-3.32.tar.gz /tmp/man-pages.tar.gz  
+0

SEXY感谢名单了很多 –