Search code examples
pythonpython-3.xpython-zipfile

Get top level directory within the zipfile


I have the following structure within a zipped file "test.zip"

  • JOU=00335/VOL=2019.30/ISU=9-10/ART=9812/data.xml
  • JOU=00335/VOL=2019.30/ISU=9-10/ART=9813/data.xml
  • JOU=00335/VOL=2019.30/ISU=9-10/ART=9814/data.xml

There are multiple top level folders like JOU=00336,JOU=00337 etc.

I want to count the top level folders.

I have the following code which gives me a count of all XML files zipped in test.zip.

        with ZipFile("test.zip", "r") as f:
            print(len(f.namelist()))

Not sure how to count just the top level folders


Solution

  • You can split the paths to get the first element in them, and count those unique ones with a set:

    top = {item.split('/')[0] for item in f.namelist()}
    print(len(top))