【问题标题】:How to extract multiple 7z file using Python?如何使用 Python 提取多个 7z 文件?
【发布时间】:2021-12-29 03:49:21
【问题描述】:

我想使用 Python 提取多个 .7z 文件。 我试过这个,但它只提取了一个文件。我已经循环了。

以下是我尝试过的。

import os.path
import glob
from pyunpack import Archive

os.chdir("E:/DATA/raw")
for file in glob.glob("*myfile.7z"):
    print(file)
    Archive(file).extractall("E:/DATA/output")

7z 文件的名称是:

AHFWHSH_1438923_myfile.7z KFWFAUF_3257485_myfile.7z GDSHUHG_8975498_myfile.7z

我预期的输出文件夹是:

输出1 输出2 输出3

【问题讨论】:

  • 这能回答你的问题吗? extract 7z file using python 3
  • 请在for循环之前添加print(glob.glob("*myfile.7z"))并写下它给出的输出
  • @SanjaySS 不,它不能回答我的问题
  • @Daweo 我添加了它
  • @Cheries 是您档案中的文件名,它们是唯一的吗?如果不解压后续可能会简单地覆盖已提取的文件

标签: python for-loop extract unzip 7zip


【解决方案1】:

如果您的预期输出是 output1、output2、output3,那么您应该将索引添加到输出路径。您还应该在提取文件之前创建目录,使用os.mkdir()

import os
import glob
from pyunpack import Archive

for i, f in enumerate(glob.glob(os.path.join("E:/DATA/raw", "*myfile.7z"))):
    dir_path = "E:/DATA/output" + str(i+1)
    os.mkdir(dir_path)
    Archive(f).extractall(dir_path)

【讨论】:

  • 嗨@Vito,谢谢你的回答。但我收到一个错误:ValueError: directory does not exist:E:/DATA/output1
  • 我已经通过在提取文件之前添加输出目录的创建来更新答案
  • 嗨,非常感谢,它可以工作。但是我在解压后发现 output3 中的结果之一缺少 1 个文件夹。
猜你喜欢
  • 1970-01-01
  • 2017-10-23
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
相关资源
最近更新 更多