2011-07-24 120 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感謝名單了很多 –