【问题标题】:python unzip all files to parent directorypython解压所有文件到父目录
【发布时间】:2020-12-18 23:50:31
【问题描述】:

如何将某个目录中的所有 .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”中,而是保存在嵌套文件夹中

【问题讨论】:

    标签: python zip unzip zipfile


    【解决方案1】:

    这可能有点夸张。 文件解压后,我运行这个:

    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")
    

    【讨论】:

    • 如何解压所有文件?我得到的问题是我不确定如何指定要保存的位置。我需要使用相对路径,因为我从 docker 运行脚本,如果我只是写 z.extractall(parent_directory) 那么它不会将它保存在我想要的地方。例如而不是 '../dir/' 被保存在 '/dir/zip/dir'
    猜你喜欢
    • 2011-01-23
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 2017-01-06
    • 2022-01-06
    相关资源
    最近更新 更多