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去除列表中重复元素的方法
Mar 20 Python
Python实现方便使用的级联进度信息实例
May 05 Python
详解Python的Django框架中inclusion_tag的使用
Jul 21 Python
python中模块的__all__属性详解
Oct 26 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
解决pycharm工程启动卡住没反应的问题
Jan 19 Python
Python实现的企业粉丝抽奖功能示例
Jul 26 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
Python使用文件操作实现一个XX信息管理系统的示例
Jul 02 Python
pd.DataFrame中的几种索引变换的实现
Jun 16 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下的权限算法的实现
2007/04/28 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
浅谈js中的变量名和函数名重名
2017/02/13 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
python 设置输出图像的像素大小方法
2019/07/04 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
手工制作的意大利太阳镜和光学元件:Illesteva
2019/01/19 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
初任培训自我鉴定
2013/10/07 职场文书
老师推荐信
2013/10/28 职场文书
婚前财产公证书
2014/04/10 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
大学生应聘求职信
2014/05/26 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server