編譯
生成單個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('.'))