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访问mysql数据库的实现方法(2则示例)
Jan 06 Python
python实现电脑自动关机
Jun 20 Python
pandas通过loc生成新的列方法
Nov 28 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
python3.7 openpyxl 删除指定一列或者一行的代码
Oct 08 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
Django通过json格式收集主机信息
May 29 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同时支持GIF、png、JPEG
2006/10/09 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
Python3 操作符重载方法示例
2017/11/23 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
顺丰快递Java软件工程师面试题
2015/07/31 面试题
银行学习十八大感想
2014/01/11 职场文书
副厂长岗位职责
2014/02/02 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
党员公开承诺书内容
2014/05/20 职场文书
离职保密承诺书
2014/05/28 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
2014年教研室工作总结
2014/12/06 职场文书
小学一年级学生评语大全
2014/12/25 职场文书