python-3.x 如何在原地递归解压缩?

brc7rcf0  于 2023-02-26  发布在  Python
关注(0)|答案(1)|浏览(133)

我有一个包含子目录的目录。我想递归地在本地解压缩这个目录结构中的每个.zip文件。(在. zip文件旁边解压缩)
例如:

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

解压后:

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

我更喜欢它在linux和windows上都能工作。

yzuktlbb

yzuktlbb1#

有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])

在当前目录下运行:

python3 unzip.py .

相关问题