通过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中的with...as用法介绍
May 28 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
关于Python中空格字符串处理的技巧总结
Aug 10 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
Jan 11 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 Python
Python 中导入csv数据的三种方法
Nov 01 Python
对python的输出和输出格式详解
Dec 08 Python
一行Python代码制作动态二维码的实现
Sep 09 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
浅析Python 多行匹配模式
Jul 24 Python
python Cartopy的基础使用详解
Nov 01 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里得到前天和昨天的日期的代码
2007/08/16 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
PHP对象实例化单例方法
2017/01/19 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
也说JavaScript中String类的replace函数
2011/09/22 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
js实现文字列表无缝滚动效果
2017/06/23 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
python抓取网页图片并放到指定文件夹
2014/04/24 Python
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
python对日志进行处理的实例代码
2018/10/06 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
python程序变成软件的实操方法
2019/06/24 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
初中政教处工作总结
2015/08/12 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
Python何绘制带有背景色块的折线图
2022/04/23 Python
Echarts如何重新渲染实例详解
2022/05/30 Javascript