通过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中__new__与__init__方法的区别详解
May 04 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
Python使用字典的嵌套功能详解
Feb 27 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
Django 自定义404 500等错误页面的实现
Mar 08 Python
对python中各个response的使用说明
Mar 28 Python
python简单实现9宫格图片实例
Sep 03 Python
python 动态绘制爱心的示例
Sep 27 Python
python判断all函数输出结果是否为true的方法
Dec 03 Python
python中count函数知识点浅析
Dec 17 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 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
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
php visitFile()遍历指定文件夹函数
2010/08/21 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
详解Python3中字符串中的数字提取方法
2017/01/14 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
Python闭包思想与用法浅析
2018/12/27 Python
python实现维吉尼亚算法
2019/03/20 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
德国大型和小型家用电器网上商店:Energeto
2019/05/15 全球购物
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
父母对孩子说的话
2014/04/12 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
大学生个人学习总结
2015/02/15 职场文书
初中数学教学反思范文
2016/02/17 职场文书
Python如何导出导入所有依赖包详解
2021/06/08 Python
spring cloud 配置中心native配置方式
2021/09/25 Java/Android