python常見的文件格式是什么?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
為確山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及確山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、確山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
這幾天,剛好因工作需要爬取網(wǎng)站圖片資源,下載了幾款軟件,想重寫軟件,對.pyd文件格式產(chǎn)生了疑惑
一般認(rèn)為,Python 是一種解釋性語言,Python 在執(zhí)行時,會先將 .py 文件中的源代碼編譯成 byte code (字節(jié)碼)
然后再由 Python Virtual Machine(虛擬機) 來執(zhí)行這些編譯 byte code。
這種機制的基本思想跟 Java、.NET 一致;但 Python Virtual Machine 與 Java 或 .NET 的 Virtual Machine 不同的是:Python 的 Virtual Machine 是一種更高級的 Virtual Machine。這里的高級并不是通常意義上的高級,不是說 Python 的 Virtual Machine 比 Java 或 .NET 的功能更強大,更拽,而是說和 Java 或 .NET 相比,Python 的 Virtual Machine 距真實機器的距離更遠(yuǎn)?;蛘呖梢赃@么說,Python 的 Virtual Machine 是一種抽象層次更高的 Virtual Machine。
Python 提供了一種中間編譯結(jié)果保存機制,即 byte code,或更準(zhǔn)確地說,保存 PyCodeObject。事實上,Python 確實提供了這樣一種機制 —— .pyc 文件。在執(zhí)行一個 .py 文件的源代碼之后,Python 并不會自動生成與該 .py 文件對應(yīng)的 .pyc 文件。Python 會根據(jù)需要自動觸發(fā)、創(chuàng)建 .pyc 文件,原理很簡單,就是利用 Python 的 import 機制
在 Python 運行過程中如碰到 import abc 這樣的語句,Python 將會在設(shè)定好的 path 中尋找 abc.pyc 或 abc.dll 文件。若沒有這樣的文件,而只是發(fā)現(xiàn)了 abc.py 文件,那么,Python 會首先將 abc.py 編譯成相應(yīng)的 PyCodeObject 中間結(jié)果,然后再創(chuàng)建 abc.pyc 文件,并將中間結(jié)果寫入該文件。接下來,Python 才會對 abc.pyc 文件進(jìn)行一個 import 動作,實際上也就是將 abc.pyc 文件中的 PyCodeObject 重新在內(nèi)存中復(fù)制出來,加以運行。
由于 Python .pyc 文件的此種運行機制,所以,可隨時刪除所有中間過程 .pyc 文件,當(dāng) Python 再次運行時,還會重生成這些 .pyc 文件,對您所編輯程序的運行并無任何影響。當(dāng)然,得有源代碼才行
視窗用 python.exe 運行 .py ,用 pythonw.exe 運行 .pyw。因為安裝視窗版 Python 時,擴展名 .py 自動被登記為用 python.exe 運行, 而 .pyw 則被登記為用 pythonw.exe 運行。
.py文件
以 .py 作擴展名的文件是 Python 源代碼文件,由 python.exe 解釋,可在控制臺下運行。
當(dāng)然,也可用文本編輯器或其它專用 Python IDE (集成開發(fā)環(huán)境) 工具進(jìn)行修改。
.pyc文件
以 .pyc 作擴展名的文件是 python 編譯文件。.pyc 文件是不能直接用文本編輯器進(jìn)行編輯,其優(yōu)點是 .pyc 文件的執(zhí)行速度要遠(yuǎn)快于 .py 文件。
至于為什么要有 .pyc 文件,因為 .py 文件是可直接看到源碼的。若是軟件開發(fā)商,不可能把源碼泄漏出去?所以,就需編譯成 .pyc 后再發(fā)布。
但 .pyc 文件只是經(jīng)簡單編譯,并未加密,因此,有些工具還能反編譯它得出源代碼。
.pyw文件
.pyc 文件執(zhí)行時,桌面會出現(xiàn)類似 CMD 命令的黑色 shell 窗口,十分難看,于是 .pyw 文件就應(yīng)運而生了。.pyw 文件與 .pyc 文件的執(zhí)行,本質(zhì)上并沒什么區(qū)別,只是 .pyw 文件執(zhí)行的時候不會出現(xiàn)類似 CMD 命令的黑色 shell 窗口。
.pyw 文件格式主要是設(shè)計用來運行 Python 純 GUI (圖形用戶界面) 程序的。純 GUI (圖形用戶界面) 程序的用戶不需要看到類似 CMD 命令的黑色 shell 控制臺窗口。當(dāng) .pyw 文件運行時,所有 stdout(標(biāo)準(zhǔn)輸入輸出)、stderr(標(biāo)準(zhǔn)錯誤) 輸出無效,所有原 stdin(標(biāo)準(zhǔn)輸入) 的讀取只會得到 EOF。
值得一提的是,開發(fā)純 GUI (圖形用戶界面) 程序時,可暫時把 .pyw 改成 .py,以便運行時調(diào)出控制臺窗口,看到所有錯誤信息,方便修改、調(diào)試。
注意:采用 PyQt、PySide 等 GUI (圖形用戶界面) 開發(fā)框架開發(fā)的程序,源文件仍可采用 .py,無需單獨使用 .pyw。
.pyd文件格式
.pyd 文件是非 Python,由其它編程語言 "編寫-編譯" 生成的 Python 擴展模塊。
Python 要導(dǎo)入 .pyd 文件,實際上是在 .pyd 文件中封裝了一個 module。在 python 中使用時,把它當(dāng)成 module 來用就可以了,即:"import 路徑名.modulename" 即可,路徑名為 .pyd 文件所在的路徑。
基于 Qt/C++ 的 PyQt、PySide GUI (圖形用戶界面) 開發(fā)框架綁定,會為每個 Qt/C++ 庫 .dll 文件生成一個中間 .pyd 文件。PyWin32 項目分發(fā)包中,也存在很多 MicroSoft Windows OS 相應(yīng) .dll 文件的中間 .pyd 文件。
Cython 可將個人基于 Python 語言編寫的 Python 模塊編譯成具有 C 語言特性的 .pyd 文件。
看完上述內(nèi)容,你們掌握python常見的文件格式是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!