Zipfile: как узнать, что элемент является каталогом? - PullRequest
14 голосов
/ 20 января 2012

Делать что-то вроде этого:

from zipfile import ZipFile

#open zip file
zipfile = ZipFile('Photo.zip')

#iterate zip contents
for zipinfo in zipfile.filelist:
    #do something
    filepath, filename = path.split(zipinfo.filename)

как узнать, является ли zipinfo файлом или каталогом?

Спасибо за вашу поддержку.

Ответы [ 2 ]

16 голосов
/ 20 января 2012

Вероятно, это правильный путь:

is_dir = lambda zipinfo: zipinfo.filename.endswith('/')
5 голосов
/ 07 июня 2017

Начиная с Python 3.6, существует метод ZipInfo.is_dir().

with zipfile.ZipFile(zip_file) as archive:
    for file in archive.namelist():
        file_info = archive.getinfo(file)
        if file_info.is_dir():
            # do something

Подробнее см. Документы Python 3.6 .

...