[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