如何识别 ZipFile 中的项目是否为目录
How to identify whether an item inside ZipFile is a directory
考虑一个 zip 文件,其中包含一个目录,其中包含一些文件,例如sample.zip
的内容是:
Archive: ziptest.zip
Length Date Time Name
--------- ---------- ----- ----
0 03-28-2022 21:00 ziptest/
0 03-28-2022 21:00 ziptest/folderA/
0 03-28-2022 21:00 ziptest/folderB/
0 03-28-2022 21:00 ziptest/folderA/file1.txt
0 03-28-2022 21:00 ziptest/folderB/file2.txt
--------- -------
0 5 files
如何区分 Python 中的文件和目录? (可能忽略this)
from zipfile import ZipFile
archive = ZipFile("ziptest.zip")
print(archive.namelist())
# ['ziptest/', 'ziptest/folderA/', 'ziptest/folderB/', 'ziptest/folderA/file1.txt', 'ziptest/folderB/file2.txt']
一种方法是假设文件是具有扩展名的文件,但情况并非总是如此。我尝试将 .namelist()
的元素包装在 pathlib.Path
中,但这不起作用。此外,可以查看文件大小来区分文件,但这会在空文件上给出错误信号。
测试文件状态的唯一方法是检查“/”是否在元素末尾吗?
from zipfile import ZipFile, Path
archive = ZipFile('ZIP_PATH')
for name in archive.namelist():
print(Path(root= archive, at= name).is_dir())
考虑一个 zip 文件,其中包含一个目录,其中包含一些文件,例如sample.zip
的内容是:
Archive: ziptest.zip
Length Date Time Name
--------- ---------- ----- ----
0 03-28-2022 21:00 ziptest/
0 03-28-2022 21:00 ziptest/folderA/
0 03-28-2022 21:00 ziptest/folderB/
0 03-28-2022 21:00 ziptest/folderA/file1.txt
0 03-28-2022 21:00 ziptest/folderB/file2.txt
--------- -------
0 5 files
如何区分 Python 中的文件和目录? (可能忽略this)
from zipfile import ZipFile
archive = ZipFile("ziptest.zip")
print(archive.namelist())
# ['ziptest/', 'ziptest/folderA/', 'ziptest/folderB/', 'ziptest/folderA/file1.txt', 'ziptest/folderB/file2.txt']
一种方法是假设文件是具有扩展名的文件,但情况并非总是如此。我尝试将 .namelist()
的元素包装在 pathlib.Path
中,但这不起作用。此外,可以查看文件大小来区分文件,但这会在空文件上给出错误信号。
测试文件状态的唯一方法是检查“/”是否在元素末尾吗?
from zipfile import ZipFile, Path
archive = ZipFile('ZIP_PATH')
for name in archive.namelist():
print(Path(root= archive, at= name).is_dir())