如何在Python中遍历zipfile时判断一个项是否是目录?

18 投票
2 回答
7705 浏览
提问于 2025-04-17 10:39

像这样做:

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 个回答

14

从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的文档了解更多细节。

18

可能这就是正确的方法:

is_dir = lambda zipinfo: zipinfo.filename.endswith('/')

撰写回答