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


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 相关文章推荐
python分割和拼接字符串
Nov 01 Python
Python运用于数据分析的简单教程
Mar 27 Python
python使用nntp读取新闻组内容的方法
May 08 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
Python内置模块turtle绘图详解
Dec 09 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
Django为窗体加上防机器人的验证码功能过程解析
Aug 14 Python
基于pandas中expand的作用详解
Dec 17 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
Jupyter Notebook 实现正常显示中文和负号
Apr 24 Python
学习python需要有编程基础吗
Jun 02 Python
如何对python的字典进行排序
Jun 19 Python
打开电脑上的QQ的python代码
Feb 10 #Python
使用python实现baidu hi自动登录的代码
Feb 10 #Python
python判断端口是否打开的实现代码
Feb 10 #Python
python登录QQ邮箱发信的实现代码
Feb 10 #Python
可用于监控 mysql Master Slave 状态的python代码
Feb 10 #Python
python 从远程服务器下载东西的代码
Feb 10 #Python
Python内置的字符串处理函数整理
Jan 29 #Python
You might like
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
[03:36]2015国际邀请赛第二日现场精彩集锦
2015/08/06 DOTA
python文件操作整理汇总
2014/10/21 Python
对python中return和print的一些理解
2017/08/18 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
Python中super函数用法实例分析
2019/03/18 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
python 三元运算符使用解析
2019/09/16 Python
简历上的自我评价
2014/02/03 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
学习经验交流会主持词
2014/04/01 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
五一劳动节慰问信
2015/02/14 职场文书
水浒传读书笔记
2015/06/25 职场文书