0

I have a directory with subdirectories. I want to unzip every .zip file in this directory structure recursively and locally. (Unzip next to the .zip file)
For example:

.
├── A
│   ├── A2
│   │   └── content1.zip
│   ├── content2.zip
│   └── content3.zip
├── B
│   └── content4.zip
└── content5.zip

After unzip:

.
├── A
│   ├── A2
│   │   ├── content1.txt
│   │   └── content1.zip
│   ├── content2.txt
│   ├── content2.zip
│   ├── content3.txt
│   └── content3.zip
├── B
│   ├── content4.txt
│   └── content4.zip
├── content5.txt
└── content5.zip

I prefer if it's working both on linux and windows.

sedsed
  • 97
  • 4
  • This would help https://stackoverflow.com/questions/107995/how-do-you-recursively-unzip-archives-in-a-directory-and-its-subdirectories-from – Izul Wahidin Jan 30 '22 at 14:19

1 Answers1

0

With python3

import os
import sys
import zipfile

for dir in os.walk(sys.argv[1]):
    #dir[0] - current directory
    #dir[1] - directories in current directory
    #dir[2] - files in current directory
    for file in dir[2]:
        if file.endswith(".zip"):
            with zipfile.ZipFile(dir[0] + "/" + file, 'r') as zip_ref:
                zip_ref.extractall(dir[0])

Run in current directory:

python3 unzip.py .
sedsed
  • 97
  • 4