2.6 利用FTP上传所有文件

时间:2023-03-09 07:55:53
2.6 利用FTP上传所有文件

利用FTP上传所有文件

import os,ftptools

class UploadAll(ftptools.FtpTools):                              #继承上一篇写的Ftptools
'''upload an entire tree of subdirectories''' def __init__(self):
self.fcount = self.dcount = 0 def getcleanall(self):
return False def uploadDir(self,localdir):
'''for each directory in an entire tree,upload simple files,recur into subdirectories''' localfiles = os.listdir(localdir)
for localname in localfiles:
localpath = os.path.join(localdir,localname)
print('uploading',localpath,'to',localname,end=' ')
if not os.path.isdir(localpath):
self.uploadOne(localname,localpath,localname) #使用Ftptools中的上传方法
self.fcount += 1
else:
try:
self.connection.mkd(localname) #创建目录
print('directory created')
except:
print('directory existed')
#开始上传目录
self.connection.cwd(localname)
self.uploadDir(localpath)
self.connection.cwd('..')
self.dcount += 1
print('directory uploaded') if __name__ == '__main__':
ftp = UploadAll()
ftp.configTransfer(site='192.168.191.1',rdir='.',user=())
ftp.run(transferAct=lambda :ftp.uploadDir(ftp.localdir))
print('Done:',ftp.fcount,'files and',ftp.dcount,'directory uploaded.')