2016-10-10 7 views
1

Я знаю, что вы можете получить размер в байтах файла в ZIP-файле, используя метод .file_size Но есть ли какие-либо возможности получить размер вместо папки?Как узнать размер папки в zipfile (Python)

Ex:

import zipfile, os 

os.chdir('C:\\')  
zp= zipfile.ZipFile('example.zip') 

spamInfo = zp.getinfo('spam.txt') #Here, Instead of a file I'd like to put a folder 
spamInfo.file_size 

zp.close() 

Любая помощь будет принята с благодарностью.

+1

Возможно, вам понадобится цикл для файлов в папке. Затем получите информацию с zp.getinfo ('файл'). Затем просто увеличивайте переменную с помощью file_size каждый раз. – Mirage

+1

'sum (zp.getinfo (filename) .file_size для имени файла в папке)'? –

+0

Извините за немой вопрос, я новичок в этом, но как правильно писать папку. Пример. Если у меня есть папка с именем «Рисунки» в zip-файле. Должен ли я помещать => для имени файла в «\\ Рисунки»? – tadm123

ответ

4

Просто введите код ниже в вашу программу.

size = sum([zinfo.file_size for zinfo in zp.filelist]) 
zip_kb = float(size)/1000 #kB 

Надеюсь, это сработает для вас. :)

+0

Вам не нужно создавать список, 'sum' будет работать с выражением понимания. –