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 list中append()与extend()用法分享
Mar 24 Python
Python sys.path详细介绍
Oct 17 Python
详谈Python基础之内置函数和递归
Jun 21 Python
python中requests库session对象的妙用详解
Oct 30 Python
python保存数据到本地文件的方法
Jun 23 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
Python获取时间戳代码实例
Sep 24 Python
简单了解Python读取大文件代码实例
Dec 18 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
Python函数参数定义及传递方式解析
Jun 10 Python
如何Tkinter模块编写Python图形界面
Oct 14 Python
python 模拟登录B站的示例代码
Dec 15 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
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
使用python装饰器验证配置文件示例
2014/02/24 Python
Python实现完整的事务操作示例
2017/06/20 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
python脚本和网页有何区别
2020/07/02 Python
python为什么要安装到c盘
2020/07/20 Python
django中ImageField的使用详解
2020/12/21 Python
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
营业员个人总结的自我评价
2013/10/25 职场文书
服装公司总经理岗位职责
2013/11/30 职场文书
公司薪酬管理制度
2014/01/31 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
授权委托书范文
2014/07/31 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android