社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Tamachan87 • 4 年前 • 444 次点击  

我有一个脚本来提取.exe文件的所有内容,但是 register_archive_format register_unpack_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_unpack_formats() 并且似乎正确地显示了注册的exe文件。但是当密码到达 shutil.unpack_archive() 它抛出的函数 py7zr.exceptions.Bad7zFile: not a 7z file

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/57037
 
444 次点击