python ftp 按目錄結(jié)構(gòu)上傳下載的實(shí)現(xiàn)代碼
具體代碼如下所示:
#!/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')
只完成了按目錄結(jié)構(gòu)上傳,下載還沒弄好。
補(bǔ)充:下面看下Python ftp 上傳和下載
工具
python3
ftplib
上傳
from ftplib import FTP ftp = FTP(host='127.0.0.1', user='test', passwd='test') #創(chuàng)建 ftp.cwd('/home/test/ftp/') #上傳路徑 fd = open('test.txt', 'rb') #以只讀的方式打開要上傳的文件 ftp.storbinary('STOR test.txt', fd) #上傳文件 fd.close() ftp.quit() #退出登錄 ftp.close() #關(guān)閉連接
下載
from ftplib import FTP ftp = FTP(host='127.0.0.1', user='test', passwd='test') #創(chuàng)建 ftp.cwd('/home/test/ftp/') #服務(wù)器下載路徑 fd = open('test.txt', 'wb') #以只寫的方式打開要下載的文件 ftp.retrbinary('RETR test.txt', fd.write, 2048) #下載文件 fd.close() ftp.quit() #退出登錄 ftp.close() #關(guān)閉連接
總結(jié)
以上所述是小編給大家介紹的jpython ftp 按目錄結(jié)構(gòu)上傳下載的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python基于tkinter canvas實(shí)現(xiàn)圖片裁剪功能
這篇文章主要介紹了Python基于tkinter canvas實(shí)現(xiàn)圖片裁剪功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11python機(jī)器學(xué)習(xí)pytorch?張量基礎(chǔ)教程
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)pytorch?張量基礎(chǔ)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10pytorch 一行代碼查看網(wǎng)絡(luò)參數(shù)總量的實(shí)現(xiàn)
這篇文章主要介紹了pytorch實(shí)現(xiàn)一行代碼查看網(wǎng)絡(luò)參數(shù)總量的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2021-05-05Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用
csv文件是一種逗號(hào)分隔的純文本形式存儲(chǔ)的表格數(shù)據(jù),Python內(nèi)置了CSV模塊,可直接通過該模塊實(shí)現(xiàn)csv文件的讀寫操作,下面這篇文章主要給大家介紹了關(guān)于Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用,需要的朋友可以參考下2022-09-09Python趣味挑戰(zhàn)之用pygame實(shí)現(xiàn)簡(jiǎn)單的金幣旋轉(zhuǎn)效果
今天教大家怎么用pygame實(shí)現(xiàn)簡(jiǎn)單的金幣旋轉(zhuǎn)效果,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05淺談python中的getattr函數(shù) hasattr函數(shù)
下面小編就為大家?guī)?lái)一篇淺談python中的getattr函數(shù) hasattr函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-06-06利用python在大量數(shù)據(jù)文件下刪除某一行的例子
今天小編就為大家分享一篇利用python在大量數(shù)據(jù)文件下刪除某一行的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-08-08