pyc学习
pyc文件的格式
最开始4个字节是一个Maigc int, 标识此pyc的版本信息。
接下来四个字节还是个int,是pyc产生的时间。
接下来是个序列化了的 PyCodeObject。
magic int
像大多数的文件格式一样,pyc 文件开头也有一个magic number,不过不一样的是 pyc文件的magic number并不固定,而是不同版本的Python生成的pyc文件的magic number都不相同。
文件信息
在Python2的时候,这部分只有4个字节,为源代码文件的修改时间。
Python3.5和3.6相对于Python2,源代码文件信息这部分,在时间后面增加了4个字节的源代码文件的大小。
从Python3.7开始支持hash-based pyc文件,Python为了支持hash校验又使源代码文件信息这部分增加了4个字节,变为一共12个字节。
PycObject
一串二进制流,代表着指令序列,详见https://kdr2.com/tech/python/pyc-format.html