经过几个晚上的努力,pyc文件终于让我解析出来了。

本文探讨了几行简单Python代码对应的pyc文件结构与内容,详细分析了从源代码到字节码的转换过程,包括指令操作码、常量、变量名等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

几行代码的pyc文件

i = 1
s = 'python'
d = {}
l = []
 

解析出的pyc文件的内容:

 

<?xml version="1.0" encoding="utf-8" ?>
 <PycFile>
    <magicnumber value="168686259" />
    <madetime value="2009-10-27 22:30:09" />
     <codeObject>
        <argCount value="0" />
         <localCount value="0" />
         <statckSize value="1" />
         <flags value="64" />
          <code>
                <command no="0" op="100" opname="LOAD_CONST" opvarg="0" />
                <command no="3" op="90" opname="STORE_NAME" opvarg="0" />
                <command no="6" op="100" opname="LOAD_CONST" opvarg="1" />
                <command no="9" op="90" opname="STORE_NAME" opvarg="1" />
                <command no="12" op="104" opname="BUILD_MAP" opvarg="0" />
                <command no="15" op="90" opname="STORE_NAME" opvarg="2" />
                <command no="18" op="103" opname="BUILD_LIST" opvarg="0" />
                <command no="21" op="90" opname="STORE_NAME" opvarg="3" />
                <command no="24" op="100" opname="LOAD_CONST" opvarg="2" />
                <command no="27" op="83" opname="RETURN_VALUE" />
      </code>
          <consts>
                    <int value="1" />
                     <internStr index="15" length="6" value="python" />
                   <None />
      </consts>
          <names>
              <internStr index="16" length="1" value="i" />
              <internStr index="17" length="1" value="s" />
              <internStr index="18" length="1" value="d" />
              <internStr index="19" length="1" value="l" />
     </names>
        <varnames />
        <freevars />
        <cellvars />
         <fileName>
              <str length="62" value="D:/PlayColorLife/source/eclipse_workspace/ParsePyc/src/demo.py" />
     </fileName>
         <name>
              <str length="8" value="<module>" />
     </name>
        <firstlineno value="3" />
        <lnotab>
              <lno value-1="6" value-2="2" />
              <lno value-1="6" value-2="1" />
             <lno value-1="6" value-2="1" />
    </lnotab>
 </codeObject>
</PycFile>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值