网络编程
位置:首页>> 网络编程>> Python编程>> python ftp 按目录结构上传下载的实现代码

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com