無須解壓——利用Python統計RAR壓縮包內文件的原始大小(上)

1、安裝第三方庫  RarFile

下載安裝包    https://pypi.org/project/rarfile/#files

安裝方法同    https://blog.csdn.net/lzqg1990/article/details/88606527

 

2、統計目標文件

需要統計5項結果(下圖爲壓縮包文件內部結構):

DAE、DAY、NIGHT、XREF共4個文件夾的大小及DAE文件夾下所有文件名中不包含_S的dae文件大小。

                 

 

 

3、參考幫助文檔編寫腳本

基於官網的以下示例編寫了我的腳本

注意:屬性file_size獲取壓縮文件中文件的壓縮前大小,以字節爲單位,需留意KB\MB\GB間單位轉換

#coding=utf-8
#城市壓縮包文件大小統計
import rarfile

sum_S = 0
sum_DAE = 0
sum_XREF = 0
sum_DAY = 0
sum_NIGHT = 0
sum_DAE_file = 0

rf = rarfile.RarFile('NANTONG.rar')
for f in rf.infolist():
    #print(f.filename, f.file_size)#file_size爲字節大小 1KB=1024字節

    #【1】DAE文件(MB)
    #_H、_XREF、_B1、_B2文件合計大小= sum_DAE_file-sum_S-sum_XREF-sum_DAY-sum_NIGHT
    if '_S.dae' in f.filename:
        sum_S += f.file_size            
 
    #【2】 XREF紋理庫文件(MB)
    #   XREF文件夾
    if 'DAE/XREF' in f.filename:
        sum_XREF += f.file_size
        
    #【3】DAY紋理庫文件(MB)
    #   TEXTURES下DAY文件夾 
    if 'DAE/TEXTURES/DAY' in f.filename:
        sum_DAY += f.file_size

    #【4】NIGHT紋理庫文件(MB)
    #   TEXTURES下NIGHT文件夾
    if 'DAE/TEXTURES/NIGHT' in f.filename:
        sum_NIGHT += f.file_size

    #【5】小計(MB)
    #   DAE文件夾
    if '/DAE' in f.filename:
        sum_DAE_file += f.file_size

sum_DAE = sum_DAE_file-sum_S-sum_XREF-sum_DAY-sum_NIGHT
trans = 1024*1024        

print('DAE文件:{0:.2F}MB'.format(sum_DAE/trans))
print('XREF紋理庫文件:{0:.2F}MB'.format(sum_XREF/trans))
print('DAY紋理庫文件:{0:.2F}MB'.format(sum_DAY/trans))
print('NIGHT紋理庫文件:{0:.2F}MB'.format(sum_NIGHT/trans))
print('小計:{0:.2F}MB'.format(sum_DAE_file/trans))

4、結果驗證

與文件屬性中查看的大小一致。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章