gpt4 book ai didi

Python 3 字节码格式

转载 作者:行者123 更新时间:2023-11-30 22:57:43 26 4
gpt4 key购买 nike

我想读取 .pyc 文件。但是,我找不到任何有关该格式的文档。

only one I found不适用于 Python 3(尽管它适用于 Python 2):

>>> f = open('__pycache__/foo.cpython-34.pyc', 'rb')
>>> f.read(4)
b'\xee\x0c\r\n'
>>> f.read(4)
b'\xf8\x17\x08W'
>>> marshal.load(f)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: bad marshal data (unknown type code)

marshal 仅消耗一个字节:\x00,这确实不是 marshall 的有效第一个字符(作为比较,同一空模块的 Python 2 字节码的第一个字节是 c)

那么,如何解码 header 后面的内容?

最佳答案

试试这个。不久前它起作用了。他们在 v3 中添加了另一个 int32。

def load_file(self, source):
if isinstance(source, str):
import os.path
if not os.path.exists(source):
raise IOError("Cannot load_file('"
+ source
+ "'): does not exist")
with open(source, "rb") as fh:
header_bytes = fh.read(12)
# ignore header
self.code = marshal.load(fh)

return self.code

关于Python 3 字节码格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36509346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com