编译
生成单个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('.'))