这段代码利用内置的 zipfile
库在 .whl
文件中搜索 METADATA 文件。之后,它使用 email.parser
来解析元数据,从而获得一个 Message 对象,可以像字典一样访问它的内容。
import zipfile
import email.parser
def get_metadata(path: str) -> email.message.Message:
# 使用zipfile打开文件
with zipfile.ZipFile(path) as archive:
# 在归档文件中查找并读取METADATA文件
metadata_path = [file.filename for file in archive.filelist if "METADATA" in file.filename][0]
metadata_content = archive.read(metadata_path).decode("utf-8")
# 解析元数据为Message对象
metadata = email.parser.Parser().parsestr(metadata_content)
return metadata
# 轮子或tar.gz文件的路径
file_path = "numpy-1.25.2.whl"
METADATA = get_metadata(file_path)
print("名称: ", METADATA["name"])
print("版本: ", METADATA["version"])
print("简介: ", METADATA["summary"])
输出:
名称: numpy
版本: 1.25.2
简介: Python中的数组计算基础包