问题描述
如何将某个目录中的所有.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”中,而是保存在嵌套文件夹中
解决方法
这可能有点夸张。 解压缩文件后,我将其运行到:
- 将原始.zip文件上移一个目录级别。 (以避免/ src_filename'已经存在的错误)
- 将所有子目录中的所有文件移动到zip父目录中。
- 将原始.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")