python ftp 按目录结构上传下载的实现代码


Posted in Python onSeptember 12, 2018

具体代码如下所示:

#!/usr/bin/python
# coding=utf-8
from ftplib import FTP
import time
import os
def __ftp_upload(ftp,local,remote,isDel=False):
  if os.path.isdir(local):
    for f in os.listdir(local):
      if os.path.isdir(local+f):
        try:
          ftp.cwd(remote+f)
        except:
          ftp.mkd(remote+f)
        print local+f
        __ftp_upload(ftp,local+f+'/',remote+f+'/',isDel)
      else:
        print remote+f
        print local+f
        fp = open(local+f, 'rb')
        ftp.storbinary('STOR ' + remote + f, fp, 4096)
        fp.close()
        if (isDel==True):
          os.remove(local)
  else:
    fp = open(local+f, 'rb')
    ftp.storbinary('STOR ' + remote + f, fp, 4096)
    fp.close()
    if (isDel==True):
      os.remove(local)
def ftp_upload(host,port,username,password,local,remote,isDel=False):
  ftp = FTP()
  try:
    ftp.connect(host,port)
    ftp.login(username,password)
  except:
    return False
  try:
    __ftp_upload(ftp,local,remote,False)
  except Exception,e:
    print e
  ftp.close()
  return True
def ftp_download(host,port,username,password,local,remote):
  ftp = FTP()
  ftp.connect(host,port)
  ftp.login(username,password)
  ret = False
  try:
    if os.path.isdir(local):
      for f in ftp.dir(remote):
        fp = open(local+f, 'wb')
        ftp.retrbinary('RETR ' + remote + f, fp.write, 4096)
        fp.close()
    else:
      fp = open(local, 'wb')
      ftp.retrbinary('RETR ' + remote, fp.write, 4096)
      fp.close()
    ret = True
  except Exception,e:
    print ("download exception:\n",e)
  ftp.close()
  return ret
if __name__=='__main__':
  host = '*.*.*.*'
  port = '21'
  username = 'xxx'
  password = 'xxx'
  ftp_upload(host,port,username,password,'/home/pi/work/xx/','/home/ubuntu/xx/',False)
  print 'download'
  ftp_download(host,port,username,password,'/home/pi/work/xx/hh.txt','/home/ubuntu/xx/hh.txt')

只完成了按目录结构上传,下载还没弄好。

补充:下面看下Python ftp 上传和下载

工具

python3
ftplib

上传

from ftplib import FTP
ftp = FTP(host='127.0.0.1', user='test', passwd='test') #创建
ftp.cwd('/home/test/ftp/') #上传路径
fd = open('test.txt', 'rb') #以只读的方式打开要上传的文件
ftp.storbinary('STOR test.txt', fd) #上传文件
fd.close()
ftp.quit() #退出登录
ftp.close() #关闭连接

下载

from ftplib import FTP
ftp = FTP(host='127.0.0.1', user='test', passwd='test') #创建
ftp.cwd('/home/test/ftp/') #服务器下载路径
fd = open('test.txt', 'wb') #以只写的方式打开要下载的文件
ftp.retrbinary('RETR test.txt', fd.write, 2048) #下载文件
fd.close()
ftp.quit() #退出登录
ftp.close() #关闭连接

总结

以上所述是小编给大家介绍的jpython ftp 按目录结构上传下载的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python中定义结构体的方法
Mar 04 Python
Python break语句详解
Mar 11 Python
Python配置文件解析模块ConfigParser使用实例
Apr 13 Python
python实现mysql的单引号字符串过滤方法
Nov 14 Python
Python中的字符串查找操作方法总结
Jun 27 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
python 中文件输入输出及os模块对文件系统的操作方法
Aug 27 Python
在Python中使用Neo4j的方法
Mar 14 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
利用python绘制正态分布曲线
Jan 04 Python
Pandas数据类型之category的用法
Jun 28 Python
python3结合openpyxl库实现excel操作的实例代码
Sep 11 #Python
python创建文件备份的脚本
Sep 11 #Python
python实现飞机大战
Sep 11 #Python
pygame实现简易飞机大战
Sep 11 #Python
python实现飞机大战微信小游戏
Mar 21 #Python
python实现微信小程序自动回复
Sep 10 #Python
python中map的基本用法示例
Sep 10 #Python
You might like
php标签云的实现代码
2012/10/10 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
php实现微信支付之企业付款
2018/05/30 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
brook javascript框架介绍
2011/10/10 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
python打开文件并获取文件相关属性的方法
2015/04/23 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
Python自动生产表情包
2017/03/17 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
Python函数生成器原理及使用详解
2020/03/12 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
python实例化对象的具体方法
2020/06/17 Python
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
经典优秀个人求职信分享
2013/12/12 职场文书
无工作证明怎么写
2015/06/15 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL