我有一个文件夹,其中包含模块中的 .pyc_dis 文件。我能用它做什么?我该如何运行它?这个文件到底是从哪里来的?
我无法通过 Google 搜索找到任何信息。
谢谢。
可能是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)
文件内容看起来相似吗?
字节码反汇编实际上没有用,但如果想尝试从 .pyc 文件重建 python 源代码,则可以使用(并被 decompyle 反汇编程序使用)。
更新
例如当你运行时
$ 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')
我是一名优秀的程序员,十分优秀!