Python3 统计 ftp 文件个数和大小
【背景】
本程序遍历 ftp 目录,列出单个文件大小,统计目录个数、文件个数、文件总大小。目的是在批量下载 FTP 文件时,不严格的验证下载结果的正确性。
【环境】
Windows10 下 Python 3.6.5,第三方包 ftputil 3.4。
【ftp_stat】
#encoding:utf-8#author:walker#date:2018-10-12#summary:遍历ftp目录,列出单个文件大小,统计目录个数、文件个数、文件总大小。importtimeimportftputilFtpHost=r'ftp.ncbi.nlm.nih.gov'#FTP主机SubDir=r'/pubmed/baseline/'#最后的斜线有无不影响,根目录用单斜线即可FtpUser=r'anonymous'FtpPwd=r''FtpEncoding=r'utf-8'defMain():r"""遍历ftp目录,列出单个文件大小,统计目录个数、文件个数、文件总大小。"""fileCnt=0fileSize=0dirCnt=0withftputil.FTPHost(host=FtpHost,user=FtpUser,passwd=FtpPwd)ashost:forparent,dirnames,filenamesinhost.walk(SubDir):forfilenameinfilenames:fileCnt+=1pathfile=host.path.join(parent,filename)singleFileSize=host.path.getsize(pathfile)fileSize+=singleFileSizeprint('\tfile:%s,%dbytes'%(pathfile.encode('latin-1').decode(FtpEncoding),singleFileSize))fordirnameindirnames:dirCnt+=1pathdir=host.path.join(parent,dirname)print('\tdir:%s'%pathdir.encode('latin-1').decode(FtpEncoding))print('fileCnt:%d,fileSize:%dB/%.2fKB/%.2fMB/%.2fGB,dirCnt:%d'%(fileCnt,fileSize,fileSize/1024,fileSize/1024/1024,fileSize/1024/1024/1024,dirCnt))print('fileCnt:%d,fileSize:%dB/%.2fKB/%.2fMB/%.2fGB,dirCnt:%d'%(fileCnt,fileSize,fileSize/1024,fileSize/1024/1024,fileSize/1024/1024/1024,dirCnt))if__name__=='__main__':Main()print('currenttime:%s\n'%time.strftime('%Y-%m-%d%H:%M:%S',time.localtime()))
【相关阅读】
Python3 备份 MySQL/MariaDB(本地+FTP)
FTP 服务端:pyftpdlib
FTP 同步:pyftpsync
最好的 FTP 客户端软件:FileZilla
*** walker ***
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。