python将所有文件解压缩到父目录

时间:2020-08-30 18:46:14

标签: python zip unzip zipfile

如何将某个目录中的所有.zip文件提取到其父目录中? 我尝试过:

import zipfile
parent_directory = '../input'
directory = '../input/zip'
for f in os.listdir(directory):
    with zipfile.ZipFile(os.path.join(directory,f), "r") as z:
        z.extractall(parent_directory)

但是解压缩的文件没有保存在“ ..input / zip”中,而是保存在嵌套文件夹中

1 个答案:

答案 0 :(得分:0)

这可能有点夸张。 解压缩文件后,我将其运行到:

  1. 将原始.zip文件上移一个目录级别。 (以避免/ src_filename'已经存在的错误)
  2. 将所有子目录中的所有文件移动到zip父目录中。
  3. 将原始.zip文件移回父目录。
import os
import shutil

src = r'C:\Users\Owner\Desktop\PythonZip\PyUnzip01\child_dir\unzip_test2'
dest = r'C:\Users\Owner\Desktop\PythonZip\PyUnzip01\child_dir'
pdir = '../PyUnzip01'

os.replace(r"C:\Users\Owner\Desktop\PythonZip\PyUnzip01\child_dir\unzip_test2.zip", r"C:\Users\Owner\Desktop\PythonZip\PyUnzip01\unzip_test2.zip")

for root, subdirs, files in os.walk(src):
    for file in files:
        path = os.path.join(root, file)
        shutil.move(path, dest)

os.replace(r"C:\Users\Owner\Desktop\PythonZip\PyUnzip01\unzip_test2.zip", r"C:\Users\Owner\Desktop\PythonZip\PyUnzip01\child_dir\unzip_test2.zip")