【发布时间】:2016-04-08 21:05:38
【问题描述】:
我想读取.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)
那么,我如何解码标题后面的内容?
【问题讨论】:
-
从 Pytho3.3+ 版本开始,您需要读取的不是 8 个第一个字节,而是 12 个。在这里阅读我的答案stackoverflow.com/a/42720524/6003870
标签: python python-3.x python-3.4 bytecode