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爬取读者并制作成PDF
Mar 10 Python
基于hashlib模块--加密(详解)
Jun 21 Python
对python调用RPC接口的实例详解
Jan 03 Python
python+selenium 定位到元素,无法点击的解决方法
Jan 30 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
Python Collatz序列实现过程解析
Oct 12 Python
详解在python操作数据库中游标的使用方法
Nov 12 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 Python
Python pathlib模块使用方法及实例解析
Oct 05 Python
Python eval函数介绍及用法
Nov 09 Python
教你怎么用python selenium实现自动化测试
May 27 Python
Python实现滑雪小游戏
Sep 25 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
CodeIgniter模板引擎使用实例
2014/07/15 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
js比较和逻辑运算符的介绍
2013/03/10 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
Python操作列表的常用方法分享
2014/02/13 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
查看keras的默认backend实现方式
2020/06/19 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
英国网上超市:Ocado
2020/03/05 全球购物
一套SQL笔试题
2016/08/14 面试题
工厂门卫岗位职责
2013/11/25 职场文书
应届生如何写自荐信
2014/01/05 职场文书
优秀毕业生自我鉴定
2014/01/19 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技