• 技术文章 >后端开发 >Python教程

    通过python下载FTP上的文件夹的实现代码

    2016-06-16 08:46:52原创752
    复制代码 代码如下:


    # -*- 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('//m.sbmmt.com/m/') # 远端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()
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python FTP 文件夹
    上一篇:使用python检测手机QQ在线状态的脚本代码 下一篇:python连接sql server乱码的解决方法
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• Python解析参数的三种方法详解• Python数据类型简介之numpy• python虚拟环境配置与管理• 总结分享Python冷门的技巧• 聊聊Python中列表和字典前加星号(**)
    1/1

    PHP中文网