FTP在各种应用中经常出现,Python也提供了相应的库:ftplib。
#!/usr/bin/python
import sys,os
import ftplib
class ftpClient:
def __init__(self, logger):
self.logger = logger
self.ftp = None
def connect(self, ftpServerIp, userName, password, timeout=1000, ftpPort=21):
try:
self.ftp = ftplib.FTP()
self.ftp.connect(ftpServerIp, ftpPort, timeout)
self.ftp.login(userName, password)
except Exception, exInfo:
logInfo = "Connect FTP server failed: [%s]" %exInfo
self.logger.error(logInfo)
def disconnect(self):
try:
if self.ftp:
self.ftp.quit()
except Exception, exInfo:
logInfo = "Disconnect FTP server failed: [%s]" %exInfo
self.logger.error(logInfo)
def list(self, dir):
fileList = []
try:
self.ftp.cwd(dir)
fileList = self.ftp.nlst()
except Exception, exInfo:
logInfo = "List [%s] failed: [%s]" %(dir, exInfo)
self.logger.error(logInfo)
return fileList
def upload(self, filePath):
uploadFlag = False
try:
BUFFER_SIZE = 8192
fileReader = open(filePath, "rb")
fileName = os.path.split(filePath)[-1]
self.ftp.storbinary('STOR %s' %fileName, fileReader, BUFFER_SIZE)
fileReader.close()
uploadFlag = True
except Exception, exInfo:
logInfo = "Upload [%s] failed: [%s]" %(filePath, exInfo)
self.logger.error(logInfo)
return uploadFlag
def download(self, fileName, localPath, delFlag=False):
downloadFlag = False
try:
localFile = os.path.join(localPath, fileName)
fileWriter = open(localFile, 'wb')
self.ftp.retrbinary('RETR %s' %fileName, fileWriter.write)
fileWriter.close()
if delFlag: self.ftp.delete(fileName)
downloadFlag = True
except Exception, exInfo:
logInfo = "Download [%s] failed: [%s]" %(fileName, exInfo)
self.logger.error(logInfo)
return downloadFlag
当然,也可以在Python中调用jar实现以上的功能。
转载于:https://blog.51cto.com/ctoivan/1378302