7z的命令行,用于从存档内的特定文件夹中提取特定文件

Anu*_*ary 5 python 7zip archive

我正在编写一个Python脚本,我需要调用7z来提取保存在存档目录中的一些文件,而不需要提取完整的存档.存档包含多个目录,我需要从特定目录中提取一些文件.

比方说,"abc.7z"是一个包含多个目录的档案,即"temp","windows","system","data".我想从目录"system"中提取一些.exe文件,因为那些.exe文件也可能存在于其他目录中,但我只对"system"中的文件感兴趣.

我只需要7z命令; 我将弄清楚如何从脚本中调用7z.谢谢你的帮助.

sk1*_*k11 14

您可以在命令行末尾指定文件/文件夹筛选器.检查一下对7zip的命令行命令和选项的详细信息.

7z.exe x [archive.7z] -o[output_dir] [filter]
Run Code Online (Sandbox Code Playgroud)

例如 7z.exe x abc.7z -aoa -oC:\Temp system

您还可以从系统文件夹指定特定类型的文件.例如,system\*.exe将提取目录中的所有.exe文件system.

-aoa 选项用于覆盖模式.

要从Python调用它,您可以使用subprocess模块.就像是:

import subprocess

cmd = []
cmd.append(r'C:\Program Files\7-Zip\7z.exe')
cmd.append('x')
cmd.append(archive)
cmd.append('-aoa')
cmd.append('-o{}'.format(dst_part))
cmd.append(file_folder_filter)
subprocess.call(cmd)
Run Code Online (Sandbox Code Playgroud)


小智 5

从 7z zip 中提取特定目录的步骤:

具体目录: rootdir/firstson/second

压缩文件:test.7z

使用命令:

7z x test.7z rootdir/firstson/second
Run Code Online (Sandbox Code Playgroud)