我有一个文件夹,其中包含模块中的.pyc_dis文件。我该怎么办?我该怎么运行它?这个文件甚至来自什么?
我在Google搜索中找不到任何信息。
感谢。
答案 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')