生活随笔
收集整理的這篇文章主要介紹了
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?目錄,列出單個文件大小,統計目錄個數、文件個數、文件總大小。import?time
import?ftputilFtpHost?=?r'ftp.ncbi.nlm.nih.gov'??#?FTP?主機
SubDir?=?r'/pubmed/baseline/'???#?最后的斜線有無不影響,根目錄用單斜線即可
FtpUser?=?r'anonymous'????????
FtpPwd?=?r''?
FtpEncoding?=?r'utf-8'def?Main():r"""遍歷?ftp?目錄,列出單個文件大小,統計目錄個數、文件個數、文件總大小。"""fileCnt?=?0fileSize?=?0dirCnt?=?0with?ftputil.FTPHost(host=FtpHost,?user=FtpUser,?passwd=FtpPwd)?as?host:for?parent,?dirnames,?filenames?in?host.walk(SubDir):for?filename?in?filenames:fileCnt?+=?1pathfile?=?host.path.join(parent,?filename)singleFileSize?=?host.path.getsize(pathfile)fileSize?+=?singleFileSizeprint('\tfile:?%s,?%d?bytes'?%(pathfile.encode('latin-1').decode(FtpEncoding),?singleFileSize))for?dirname?in?dirnames:dirCnt?+=?1pathdir?=?host.path.join(parent,?dirname)print('\tdir:?%s'?%?pathdir.encode('latin-1').decode(FtpEncoding))print('fileCnt:?%d,?fileSize:?%d?B/%.2f?KB/%.2f?MB/%.2f?GB,?dirCnt:?%d'%?(fileCnt,?fileSize,?fileSize/1024,?fileSize/1024/1024,?fileSize/1024/1024/1024,?dirCnt))print('fileCnt:?%d,?fileSize:?%d?B/%.2f?KB/%.2f?MB/%.2f?GB,?dirCnt:?%d'%?(fileCnt,?fileSize,?fileSize/1024,?fileSize/1024/1024,?fileSize/1024/1024/1024,?dirCnt))if?__name__?==?'__main__':Main()print('current?time:?%s\n'%?time.strftime('%Y-%m-%d?%H:%M:%S',?time.localtime()))
【相關閱讀】
*** walker ***
轉載于:https://blog.51cto.com/walkerqt/2299304
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的Python3 统计 ftp 文件个数和大小的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。