python ftp上传_Python FTP传输的简单示例
對python這個高級語言感興趣的小伙伴,下面一起跟隨編程之家 jb51.cc的小編兩巴掌來看看吧!
訪問FTP,無非兩件事情:upload和download,最近在項目中需要從ftp下載大量文件,然后我就試著去實驗自己的ftp操作類,如下(PS:此段有問題,別復制使用,可以參考去試驗自己的ftp類!)
# @param Python之FTP傳輸
# @author 編程之家 jb51.cc|jb51.cc
import os
from ftplib import FTP
class FTPSync():
def __init__(self,host,usr,psw,log_file):
self.host = host
self.usr = usr
self.psw = psw
self.log_file = log_file
def __ConnectServer(self):
try:
self.ftp = FTP(self.host)
self.ftp.login(self.usr,self.psw)
self.ftp.set_pasv(False)
return True
except Exception:
return False
def __CloseServer(self):
try:
self.ftp.quit()
return True
except Exception:
return False
def __CheckSizeEqual(self,remoteFile,localFile):
try:
remoteFileSize = self.ftp.size(remoteFile)
localFileSize = os.path.getsize(localFile)
if localFileSize == remoteFileSize:
return True
else:
return False
except Exception:
return None
def __DownloadFile(self,localFile):
try:
self.ftp.cwd(os.path.dirname(remoteFile))
f = open(localFile,'wb')
remoteFileName = 'RETR ' + os.path.basename(remoteFile)
self.ftp.retrbinary(remoteFileName,f.write)
if self.__CheckSizeEqual(remoteFile,localFile):
self.log_file.write('The File is downloaded successfully to %s' + '\n' % localFile)
return True
else:
self.log_file.write('The localFile %s size is not same with the remoteFile' + '\n' % localFile)
return False
except Exception:
return False
def __DownloadFolder(self,remoteFolder,localFolder):
try:
fileList = []
self.ftp.retrlines('NLST',fileList.append)
for remoteFile in fileList:
localFile = os.path.join(localFolder,remoteFile)
return self.__DownloadFile(remoteFile,localFile)
except Exception:
return False
def SyncFromFTP(self,localFolder):
self.__DownloadFolder(remoteFolder,localFolder)
self.log_file.close()
self.__CloseServer()
# End www.jb51.cc
總結
以上是生活随笔為你收集整理的python ftp上传_Python FTP传输的简单示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python周天为一周的开始_周天-和周
- 下一篇: python与sap_Python结合S