打開pyc編譯文件
❶ PyInstaller打包、解包與反編譯.pyc文件
PyInstaller官網: https://www.pyinstaller.org/
假設有一個demo.py文件,在同目錄下啟動命令行或從命令行進入當前文件夾,使用如下命令打包
打包後同目錄下會產生兩個文件夾build和dist(distribution),dist文件夾內就是目標程序。
解包使用pyinstxtractor工具
Github地址: https://github.com/extremecoders-re/pyinstxtractor
假設在第1步中,使用-F參數將demo.py打包為獨立可執行文件demo.exe,進入dist文件夾,將pyinstxtractor.py放在該目錄下,在該目錄下啟動命令行或從命令行進入該文件夾,使用如下命令解包
解包得到的內容將放入同目錄下的demo.exe_extracted文件夾
找到目標.pyc文件,比如demo.pyc
反編譯.pyc文件使用uncompyle6工具
Github地址: https://github.com/rocky/python-uncompyle6
可以直接通過pip安裝uncompyle6
由於pyinstaller在打包可執行文件時會將.pyc文件頭部的16位元組magic head去掉,因此需要對需要反編譯的.pyc文件進行預處理,將文件頭部的16位元組magic head補充完整。這里使用一個開源的16進制編輯器ImHex。
Github地址: https://github.com/WerWolv/ImHex
進入demo.exe_extracted文件夾,用16進制編輯器打開struct.pyc文件復制頭部的16位元組magic head,再用16進制編輯器打開demo.pyc文件,將頭部的16位元組改為magic head,即將圖2中的部分更改為圖1中的值即可。
使用前一個命令,反編譯後的源碼內容會顯示在命令行窗口內;使用後一個命令,源碼會列印到指定文件中,如demo.py。
到此為止可以
Invalid pyc/pyo file - Magic value mismatch!
補充magic head後即可正常反編譯。
如果不是項目成員給所謂的程序而不肯給源碼,而我又繞不過這個程序的問題,我才不想折騰這些有的沒的。
❷ PYC文件怎麼打開
很奇怪樓主為什麼要打開pyc文件,pyc是二進制文件,所以你用記事本打開它的時候只會看到亂碼。
py文件作為模塊被import的時候,python為了提高解析速度,對所有這些作為模塊的py文件先作一個類似編譯的動作,產生相應的pyc文件。這樣當有別的程序再次import這些模塊時,python就不用再重新解析py文件,而是讀入pyc文件就可以了
如果你打開pyc文件是為了想看源代碼,那建議你去找回相對應的py文件
❸ 怎樣運行.pyc文件
pyc是一種
二進制文件
,是由py文件經過編譯後,生成的文件,是一種byte
code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的
位元組碼
,是由python的虛擬機來執行的,這個是類似於JAVA或者.NET的專
虛擬機
的概念.pyc的內容,是跟python的版本屬相關的,不同版本編譯後的pyc文件是不同的,2.5編譯的pyc文件,2.4版本的python是無法執行的。
❹ pyc文件怎麼打開並且修改 急!!!!
安裝python,可以打開pyc的文件來運行……如果想要修改,需要反編譯吧……
❺ 別人寫的python程序如何運行擴展名為.py的文件。
稍微改變一下就行,下面詳解。
如果
python
進程在機器上擁有寫入許可權,那麼它將把程序的位元組碼保存為一個以
.pyc
為擴展名的文件(
".pyc"
就是編譯過的
".py"
源代碼)。當程序運行之後,你會在那些源代碼的附近(也就是說同一個目錄下)看到這些文件python這樣保存位元組碼是作為一種啟動速度的優化。下一次運行程序時,如果你在上次保存位元組碼之後沒有修改過源代碼的話,python將會載入.pyc文件並跳過編譯這個步驟。當python必須重編譯時,它會自動檢查源文件和位元組碼文件的時間戳:如果你又保存了源代碼,下次程序運行時,位元組碼將自動重新創建。
❻ python .pyc是什麼文件
一、什麼是pyc文件?
pyc文件就是py程序編譯後得到的文件,是一種二進制文件。一般是這樣的:
pyc文件經過python解釋器最終會生成機器碼運行。所以pyc文件是可以跨平台部署的,類似Java的.class文件。如果py文件改變,也會重新生成pyc文件。
相關推薦:《Python視頻教程》
二、pyc文件怎麼生成的?
1、被當做模塊調用的時候會自動生成pyc文件。
一般是python腳本被當做模塊被其他腳本文件調用時,就會產生pyc文件,舉個例子:
如果你寫了一個腳本文件image.py是用來生成驗證碼的,如果你在index.py文件中想引用這個腳本的功能,就需要通過import導入image.py文件,然後,如果你運行index.py文件,那就會在image.py文件所在的路徑生成一個image.pyc文件。
2、對於py文件,可以執行下面命令來生成pyc文件。
3、通過代碼來生成pyc文件。
三、為什麼要生成pyc文件?
1、python為了提高運行效率也會進行編譯。
python是解釋型語言,運行的時候需要通過python解釋器編譯,所以先編譯出pyc文件後,可以節省編譯這一步的耗時時間。
2、不想讓源碼泄露。
因為py文件是可以直接看到源碼的,對於一般的商業公司來說,這有點不妙,因為pyc文件可以獨立於py文件,刪除py文件也不會出錯。這就是太好了,只需要編譯成pyc文件再發布出去就好了。
❼ python源代碼程序文件擴展名
python源代碼程序文件擴展名就是:
.py
❽ 如何手動編譯成pyc,可以直接執行pyc么
pyc文件就是 py程序編譯後得到的位元組碼文件 (py->pyc),python為了提高運行效率也會進行編譯,有時候編譯出pyc文件後,刪除py文件也不會出錯助於pyc文件的產生,給樓主舉例加入你有一個邏輯文件abcd.py,裡面有很多函數A,B,C,D,這個時候,如果你有一個test腳本去導入了abcd.py,只要你運行test腳本,在adcd.py目錄下就會生成一個abcd.pyc文件,而不管你是否需要調用A,B,C,D函數
❾ python程序文件test.py編譯後的文件名
python編譯可執行文件的擴展名
python程序的擴展名有.py、.pyc、.pyo和.pyd。.py是源文件,.pyc是源文件編譯後的文件,.pyo是源文件優化編譯後的文件,.pyd是其他語言寫的python庫。 擴展名 在寫Python程序時我們常見的擴展名是py, pyc,其實還有其他幾種擴展名。下面是幾種擴展名的用法。 py:py就是最基本的源碼擴展名。windows下直接雙擊運行會調用python.exe執行。 pyw:pyw是另一種源碼擴展名,跟py唯一的區別是在windows下雙擊pyw擴展名的源碼會調用pythonw.exe執行源碼,這種執行方式不會有命令行窗口。主要用於GUI程序發布時不需要看到控制台信息的情況。 pyc:在執行python代碼時經常會看到同目錄下自動生成同名的pyc文件。這是python源碼編譯後的位元組碼,一般會在代碼執行時自動生成你代碼中引用的py文件的pyc文件。這個文件可以直接執行,用文本編輯器打開也看不到源碼。 pyo:pyo是跟pyc類似的優化編碼後的文件。 pyd:pyd並非從python程序生成,而是其他語言寫成的可以被python調用的擴展。