python實(shí)現(xiàn)FTP循環(huán)上傳文件
本文實(shí)例為大家分享了python實(shí)現(xiàn)FTP循環(huán)上傳文件的具體代碼,供大家參考,具體內(nèi)容如下
測(cè)試過(guò)程中,有時(shí)會(huì)用到FTP的數(shù)據(jù)流,或者需要使用FTP反復(fù)上傳文件,所以寫(xiě)了一個(gè)FTP循環(huán)上傳文件的python代碼。
代碼如下:
#coding=utf-8import sysimport osfrom ftplib import FTPfrom time import sleep_XFER_FILE = ’FILE’_XFER_DIR = ’DIR’class Transmitter(object): # 注意:遞歸上傳本地文件或dirs到ftp服務(wù)器 def __init__(self): self.ftp = None def __del__(self): pass def setFtpParams(self, ip, uname, pwd, port=21, timeout=60): self.ip = ip self.uname = uname self.pwd = pwd self.port = port self.timeout = timeout def initEnv(self): if self.ftp is None: self.ftp = FTP() print(’### 連接FTP服務(wù)器: %s ...’ % self.ip) self.ftp.connect(self.ip, self.port, self.timeout) self.ftp.login(self.uname, self.pwd) def clearEnv(self): if self.ftp: self.ftp.close() print(’### 斷開(kāi)FTP服務(wù)器: %s!’ % self.ip) self.ftp = None def uploadDir(self, localdir=’./’, remotedir=’./’): if not os.path.isdir(localdir): return self.ftp.cwd(remotedir) for file in os.listdir(localdir): src = os.path.join(localdir, file) if os.path.isfile(src):self.uploadFile(src, file) elif os.path.isdir(src):try: self.ftp.mkd(file)except: sys.stderr.write(’目錄存在 %s’ % file)self.uploadDir(src, file) self.ftp.cwd(’..’) def uploadFile(self, localpath, remotepath=’./’): if not os.path.isfile(localpath): return print(’+++ 上傳 %s to %s:%s’ % (localpath, self.ip, remotepath)) self.ftp.storbinary(’STOR ’ + remotepath, open(localpath, ’rb’)) sleep(0.5) try: self.ftp.delete(remotepath) except: pass # del file when uploaded this file # os.remove(localpath) # sleep(1) def __filetype(self, src): if os.path.isfile(src): index = src.rfind(’’) if index == -1:index = src.rfind(’/’) return _XFER_FILE, src[index + 1:] elif os.path.isdir(src): return _XFER_DIR, ’’ def upload(self, src): filetype, filename = self.__filetype(src) self.initEnv() if filetype == _XFER_DIR: self.srcDir = src self.uploadDir(self.srcDir) elif filetype == _XFER_FILE: self.uploadFile(src, filename) self.clearEnv()if __name__ == ’__main__’: srcDir = r’C:UsersAdministratorDownloadsFTPsmp’ transmitter = Transmitter() transmitter.setFtpParams(’10.44.0.2’, ’admin’, ’123123’) while True: transmitter.upload(srcDir) sleep(4)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))2. .Net加密神器Eazfuscator.NET?2023.2?最新版使用教程3. 一款功能強(qiáng)大的markdown編輯器tui.editor使用示例詳解4. java獲取文件編碼,jsoup獲取html純文本操作5. 利用CSS制作3D動(dòng)畫(huà)6. python 寫(xiě)函數(shù)在一定條件下需要調(diào)用自身時(shí)的寫(xiě)法說(shuō)明7. 淺談Android Studio導(dǎo)出javadoc文檔操作及問(wèn)題的解決8. Java GZip 基于內(nèi)存實(shí)現(xiàn)壓縮和解壓的方法9. Python 實(shí)現(xiàn)勞拉游戲的實(shí)例代碼(四連環(huán)、重力四子棋)10. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼
