python ftp 按目录结构上传下载的实现代码
作者:liudijiang 发布时间:2021-01-28 00:38:33
标签:python,目录结构,上传,下载
具体代码如下所示:
#!/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 按目录结构上传下载的实现代码网站的支持!
来源:https://blog.csdn.net/liudijiang/article/details/82655957


猜你喜欢
- 最最简单的操作import numpy as npimport matplotlib.pyplot as pltfig = plt.figu
- 本文实例为大家分享了js实现九宫格布局效果的具体代码,供大家参考,具体内容如下效果代码如下:<!DOCTYPE html><
- 1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.
- 本文实例讲述了python获取文件版本信息、公司名和产品名的方法,分享给大家供大家参考。具体如下:该python代码可得到文件版本信息、公司
- pygame介绍Python Pygame 是一款专门为开发和设计 2D 电子游戏而生的软件包,它支 Windows、Linux、Mac O
- 自我描述的语句指这样一种语句:它的内容就是对它本身的描述。(废话……)比如下面这句句子:这是一段自我描述的语句,除了标点符号外,它共包含12
- 本文实例讲述了python中readline判断文件读取结束的方法。分享给大家供大家参考。具体分析如下:大家知道,python中按行读取文件
- 当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现。FTP 服务器,在此之前我都是使用Linux的vsftpd软件包来搭建
- 实现简单的多线程下载,需要关注如下几点:1.文件的大小:可以从reponse header中提取,如“Content-Length:911”
- 和我之前写的通过导入jdbc驱动jar包来连接mysql数据库而言,用mybatis来说可以有很多好处呀,首先mybatis,就是对jdbc
- 背景前几天在MySql上做分页时,看到有博文说使用 limit 0,10 方式分页会有丢数据问题,有人又说不会,于是想自己测试一下。测试时没
- 目录1. 正则表达式_匹配单个字符2. 正则表达式_匹配多个字符3. 正则表达式_匹配分组小提示:4. 小练习答案:总结1. 正则表达式_匹
- 所有的缓存数据都存储在服务器的内存中,因此重启服务器会导致数据丢失,基于HTTP通信会将使开发变得简单,但性能不会太好缓存服务接口本程序采用
- 一、ZeroMQ概述 ZeroMQ(又名ØMQ,MQ,或zmq)像一个可嵌入的网络库,但其作用就像一个并发框
- 前言在此之前,我认为 Python 的类型提示就是一个花瓶,看起来好看,但并没有实质的作用,因为即使类型写错了,或者传错了,程序仍然可以运行
- 最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了。。。。,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开
- bottle是一个小型web框架,很小只有一个文件,但功能确很强大,学起来也简单,简单和小巧的同时也有很多不足,某些功能支持还不是很完善,比
- 安装Python环境ANACONDA是一个Python的发行版本,包含了400多个Python最常用的库,其中就包括了数据分析中需要经常使用
- 很多介绍 根据日志等级打印不同颜色 的文章都是介绍的Ideolog , 但是我个人还是倾向于 Grep Console , 你可以在配置界面
- 项目(nodejs)中需要一次性插入多笔数据到数据库,数据库是mysql的,由于循环插入的性能太差,就像使用批量插入的方法提高数据的插入性能