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 sort、sorted高级排序技巧
Nov 21 Python
python制作一个桌面便签软件
Aug 09 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
基于python的BP神经网络及异或实现过程解析
Sep 30 Python
浅析pandas 数据结构中的DataFrame
Oct 12 Python
Python文件路径名的操作方法
Oct 30 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 21 Python
python 使用while循环输出*组成的菱形实例
Apr 12 Python
浅谈keras2 predict和fit_generator的坑
Jun 17 Python
python办公自动化之excel的操作
May 23 Python
上帝为你开了一扇窗之Tkinter常用函数详解
Jun 02 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实现多级树型菜单
2006/10/09 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
pygame学习笔记(5):游戏精灵
2015/04/15 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
python实现感知器算法(批处理)
2019/01/18 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
简历里的自我评价
2014/01/31 职场文书
小学教师国培感言
2014/02/08 职场文书
亚运会口号
2014/06/20 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
Java 在生活中的 10 大应用
2021/11/02 Java/Android
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏