Posted in Python onFebruary 10, 2013
# -*- encoding: utf8 -*- import os import sys import ftplib class FTPSync(object): def __init__(self): self.conn = ftplib.FTP('10.22.33.46', 'user', 'pass') self.conn.cwd('/') # 远端FTP目录 os.chdir('/data/') # 本地下载目录 def get_dirs_files(self): u''' 得到当前目录和文件, 放入dir_res列表 ''' dir_res = [] self.conn.dir('.', dir_res.append) files = [f.split(None, 8)[-1] for f in dir_res if f.startswith('-')] dirs = [f.split(None, 8)[-1] for f in dir_res if f.startswith('d')] return (files, dirs) def walk(self, next_dir): print 'Walking to', next_dir self.conn.cwd(next_dir) try: os.mkdir(next_dir) except OSError: pass os.chdir(next_dir) ftp_curr_dir = self.conn.pwd() local_curr_dir = os.getcwd() files, dirs = self.get_dirs_files() print "FILES: ", files print "DIRS: ", dirs for f in files: print next_dir, ':', f outf = open(f, 'wb') try: self.conn.retrbinary('RETR %s' % f, outf.write) finally: outf.close() for d in dirs: os.chdir(local_curr_dir) self.conn.cwd(ftp_curr_dir) self.walk(d) def run(self): self.walk('.') def main(): f = FTPSync() f.run() if __name__ == '__main__': main()
通过python下载FTP上的文件夹的实现代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@