通过python下载FTP上的文件夹的实现代码
发布时间:2020-12-16 20:08:40 所属栏目:Python 来源:网络整理
导读:复制代码 代码如下: # -*- 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/') # 本地下载目
复制代码 代码如下: # -*- 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() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |