[Python]批量编译和反编译pyc文件


编译

生成单个pyc文件

对于py文件,可以执行下面命令来生成pyc文件。

python -m foo.py

另外一种方式是通过代码来生成pyc文件。

import py_compile
py_compile.compile('/path/to/foo.py')

批量生成pyc文件

针对一个目录下所有的py文件进行编译。python提供了一个模块叫compileall

import compileall
compileall.compile_dir(r'/path')
反编译

对于有些编译过pyc文件,看不到代码内容怎么办。

需要安装一个工具,uncompyle

pip install uncompyle

没有pip?...hmm 没关系,直接下载就好啦

sudo easy_install pip

安装好后,你应该要看到uncompyle6这个tool,执行后终端就可以看到代码了

#单个文件
uncompyle6 xxx.pyc #显示在终端上
uncompyle6 xx.pyc > xx.py #导出生成py文件

#反编译当前目录下所有pyc文件
#先cd后执行下面的,会导出生成当前目录下的py文件,但是包含多个目录的话,需要重复这个操作
uncompyle6 -o . *.pyc

删除当前目录下所有pyc文件

import os

del_paths = [name for name in os.listdir('.') if name.endswith('.pyc')]

for del_path in del_paths:
    os.remove(del_path)
print (os.listdir('.'))


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM