什么是.pyc_dis文件?

时间:2010-08-12 01:37:41

标签: python

我有一个文件夹,其中包含模块中的.pyc_dis文件。我该怎么办?我该怎么运行它?这个文件甚至来自什么?

我在Google搜索中找不到任何信息。

感谢。

1 个答案:

答案 0 :(得分:4)

它可能是由decompyle获得的反汇编的python字节码。 您可以生成类似这样的数据:

>>> import code, dis
>>> c = code.compile_command('x = []; x.append("foo")')
>>> dis.disassemble(c)
  1           0 BUILD_LIST               0
              3 STORE_NAME               0 (x)
              6 LOAD_NAME                0 (x)
              9 LOAD_ATTR                1 (append)
             12 LOAD_CONST               0 ('foo')
             15 CALL_FUNCTION            1
             18 PRINT_EXPR          
             19 LOAD_CONST               1 (None)

dos文件内容看起来类似吗?

字节码反汇编实际上并不实用,但如果想尝试从.pyc文件重构python源代码,则可以使用(并由decompyle反汇编程序使用)。

更新

e.g。当你运行

$ decompyle --showasm -o ./ app.pyc

包含字节码分析的app.pyc_dis文件在当前目录中生成,在我的简单示例中,其内容为:

0   BUILD_LIST_0      ''
3   STORE_NAME        'x'
6   LOAD_NAME         'x'
9   LOAD_ATTR         'append'
12  LOAD_CONST        'foo'
15  CALL_FUNCTION_1   ''
18  POP_TOP           ''
19  LOAD_CONST        ''
22  RETURN_VALUE      ''

x = []
x.append('foo')