通过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中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
python3实现域名查询和whois查询功能
Jun 21 Python
Python实现的特征提取操作示例
Dec 03 Python
python实现自动解数独小程序
Jan 21 Python
利用python实现周期财务统计可视化
Aug 25 Python
Python3多线程版TCP端口扫描器
Aug 31 Python
Python爬取破解无线网络wifi密码过程解析
Sep 17 Python
python datetime处理时间小结
Apr 16 Python
详解Python 循环嵌套
Jul 09 Python
python+openCV对视频进行截取的实现
Nov 27 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
用缓存实现静态页面的测试
2006/12/06 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
php经典趣味算法实例代码
2020/01/21 PHP
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
微信小程序 参数传递实例代码
2017/03/20 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
python连接MySQL数据库实例分析
2015/05/12 Python
解读Python中degrees()方法的使用
2015/05/18 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
python中selenium库的基本使用详解
2020/07/31 Python
Python collections模块的使用方法
2020/10/09 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
高二英语教学反思
2014/01/19 职场文书
家长写给孩子的评语
2014/04/18 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
欢迎新生标语
2014/10/06 职场文书
医院护士工作检讨书
2014/10/26 职场文书
人事任命通知书
2015/04/21 职场文书
实习证明格式范文
2015/06/16 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS