编写Python脚本来实现最简单的FTP下载的教程
访问FTP,无非两件事情:upload和download,最近在项目中需要从ftp下载大量文件,然后我就试着去实验自己的ftp操作类,如下(PS:此段有问题,别复制使用,可以参考去试验自己的ftp类!)
importos
fromftplibimportFTP
classFTPSync():
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)
returnTrue
exceptException:
returnFalse
def__CloseServer(self):
try:
self.ftp.quit()
returnTrue
exceptException:
returnFalse
def__CheckSizeEqual(self,remoteFile,localFile):
try:
remoteFileSize=self.ftp.size(remoteFile)
localFileSize=os.path.getsize(localFile)
iflocalFileSize==remoteFileSize:
returnTrue
else:
returnFalse
exceptException:
returnNone
def__DownloadFile(self,remoteFile,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)
ifself.__CheckSizeEqual(remoteFile,localFile):
self.log_file.write('TheFileisdownloadedsuccessfullyto%s'+'\n'%localFile)
returnTrue
else:
self.log_file.write('ThelocalFile%ssizeisnotsamewiththeremoteFile'+'\n'%localFile)
returnFalse
exceptException:
returnFalse
def__DownloadFolder(self,remoteFolder,localFolder):
try:
fileList=[]
self.ftp.retrlines('NLST',fileList.append)
forremoteFileinfileList:
localFile=os.path.join(localFolder,remoteFile)
returnself.__DownloadFile(remoteFile,localFile)
exceptException:
returnFalse
defSyncFromFTP(self,remoteFolder,localFolder):
self.__DownloadFolder(remoteFolder,localFolder)
self.log_file.close()
self.__CloseServer()
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下