Python 7zip(py7zr)未注册文件类型

Python 7zip(py7zr)未注册文件类型,python,7zip,Python,7zip,我有一个脚本来提取.exe文件的所有内容,但是,register\u archive\u format和register\u unpack\u format函数似乎没有按预期工作。以下是我的脚本的简短版本: import os import re import py7zr import wget import shutil import zipfile versions = ["1.10", "2.0", "2.1pre"] shutil.register_archive_format('ex

我有一个脚本来提取.exe文件的所有内容,但是,
register\u archive\u format
register\u unpack\u format
函数似乎没有按预期工作。以下是我的脚本的简短版本:

import os
import re
import py7zr
import wget
import shutil
import zipfile

versions = ["1.10", "2.0", "2.1pre"]
shutil.register_archive_format('exe', py7zr.pack_7zarchive, description="exe archive")
shutil.register_unpack_format('exe', ['.exe'], py7zr.unpack_7zarchive)
print("Supported formats:")
formats = shutil.get_unpack_formats()
print(formats, "\n")

with py7zr.SevenZipFile(f"C:/Users/Me/Documents/Builds/{version}/{filePath}", 'r') as zip_ref:
                    folderName = re.search("^([^_]+)(-installer)([^.]*)", fileNameOnly)
                    folderName = folderName[1] + folderName[3]
                    #zip_ref.extractall(f"C:/Users/Me/Documents/Builds/{version}/{folderName}")
                    shutil.unpack_archive(zip_ref, f"C:/Users/Me/Documents/Builds/{version}/{folderName}")
代码从
shutil.get\u unpack\u formats()
打印支持的格式列表,并且似乎正确显示了已注册的exe文件。但是当代码到达
shutil.unpack_archive()
函数时,它会抛出
py7zr.exceptions.Bad7zFile:不是7z文件


要从exe文件中提取,是否缺少一个步骤?我知道我可以通过exe文件的上下文菜单手动提取exe文件。

py7zr只支持扩展名为foo.7z的7z文件(不是强制性的),二进制文件应以“7z”魔术关键字开头。 您可能需要提取一个自解压归档文件(),它将启动一个表示它为可执行文件的魔法字节。该工具不支持它

这就是为什么py7zr说它不是(普通的)7z文件

详情请参阅