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网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
Jun 09 Python
Unicode和Python的中文处理
Mar 19 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 Python
python训练数据时打乱训练数据与标签的两种方法小结
Nov 08 Python
linux下python中文乱码解决方案详解
Aug 28 Python
python实现多进程通信实例分析
Sep 01 Python
Pytorch中accuracy和loss的计算知识点总结
Sep 10 Python
Python的缺点和劣势分析
Nov 19 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
Python调用jar包方法实现过程解析
Aug 11 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 Python
10个示例带你掌握python中的元组
Nov 23 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中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
Python之父谈Python的未来形式
2016/07/01 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
Python selenium的基本使用方法分析
2019/12/21 Python
Python request操作步骤及代码实例
2020/04/13 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
仓库规划计划书
2014/04/28 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
先进工作者申报材料
2014/12/23 职场文书
北京爱情故事观后感
2015/06/12 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python
Apache POI的基本使用详解
2021/11/07 Servers