通过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编写批量卸载手机中安装的android应用脚本
Jul 21 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
Jun 07 Python
Python代码实现KNN算法
Dec 20 Python
使用python 3实现发送邮件功能
Jun 15 Python
python设置值及NaN值处理方法
Jul 03 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
Python socket模块ftp传输文件过程解析
Nov 05 Python
python:动态路由的Flask程序代码
Nov 22 Python
python 实现dict转json并保存文件
Dec 05 Python
Python解析多帧dicom数据详解
Jan 13 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
Apr 01 Python
Python django中如何使用restful框架
Jun 23 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
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
教你安装python Django(图文)
2013/11/04 Python
python字符串连接方式汇总
2014/08/21 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
python烟花效果的代码实例
2020/02/25 Python
Python while true实现爬虫定时任务
2020/06/08 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
python实现canny边缘检测
2020/09/14 Python
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
自主招生自荐书
2013/11/29 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android