'How to identify whether an item inside ZipFile is a directory
Consider a zip file that contains a directory with some files inside, e.g. contents of sample.zip
are:
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
How does one distinguish files from directories in Python? (perhaps ignoring 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']
One way is to assume that files are the ones that have an extension, but that isn't always the case. I tried wrapping elements of .namelist()
in pathlib.Path
, but that doesn't work. Also, one could look at file size to distinguish files, but that will give false signal on empty files.
Is the only way to test for file status is to check if '/' is at the end of the element?
Solution 1:[1]
According to documentation:
from zipfile import ZipFile, Path
archive = ZipFile('ZIP_PATH')
for name in archive.namelist():
print(Path(root= archive, at= name).is_dir())
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Jan Nowi?ski |