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绘制人人网好友关系图示例
Apr 01 Python
详解python多线程、锁、event事件机制的简单使用
Apr 27 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
python实现抖音视频批量下载
Jun 20 Python
在mac下查找python包存放路径site-packages的实现方法
Nov 06 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
Aug 14 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
python求加权平均值的实例(附纯python写法)
Aug 22 Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
Feb 06 Python
Python双链表原理与实现方法详解
Feb 22 Python
python数字图像处理数据类型及颜色空间转换
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过滤敏感词的示例
2014/03/31 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
Python生成不重复随机值的方法
2015/05/11 Python
python简单分割文件的方法
2015/07/30 Python
详解Python中的变量及其命名和打印
2016/03/11 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
python 判断网络连通的实现方法
2018/04/22 Python
浅谈python写入大量文件的问题
2018/11/09 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
工艺员岗位职责
2014/02/11 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
春节请假条
2014/04/11 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
介绍信的格式
2015/01/30 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
雷锋的故事观后感
2015/06/10 职场文书
小学班级标语口号大全
2015/12/26 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL
介绍一下28个JS常用数组方法
2022/05/06 Javascript