Python小技巧:運行目錄或ZIP文件


在寫Python程序時,將不同功能代碼寫在不同文件中是一個好習慣,但是對於某些情況。如需要將腳本提供給別人運行使用,如若將程序寫在幾個文件中,則需要將文件都發給他人。別人就需要管理不同文件,這樣對於別人來說會顯得雜亂,麻煩。如果將代碼都寫在一個文件中,對於簡單的腳本沒啥毛病,但如果復雜了代碼量多了,都寫在一個文件,則對自己而言不好維護。

如果能將不同文件代碼放在一個目錄中,直接運行目錄,不就能解決了這個問題了嗎。Python提供這樣的方式:Python能直接執行一個包含 __main__.py的目錄或者ZIP文件

例子

目錄結構:

.
|—— ABC/
    |—— A.py
    |—— __main__.py

示例代碼:

# A.py
def echo():
    print('ABC!')

# __main__.py
if __name == '__main__':
    import A
    A.echo()

運行情況:

$ python ABC
ABC!

就如同上面這個簡單例子,寫代碼按照這樣的結構,將多個代碼文件放在一個目錄中,提供一個主程序入口__main__.py。然后運行目錄時,python解釋器會自動運行__main__.py中的代碼。

此外你還可以直接將多個文件壓縮成一個zip文件。直接運行zip文件也同樣可以。
目錄結構:

.
|—— ABC.zip/
    |—— A.py
    |—— __main__.py

運行情況:

$ python ABC.zip
ABC!

其它

直接運行目錄還是壓縮成zip,j就看你自己喜歡啥了。不過如果除代碼文件外還有其它數據文件的話,可能目錄的方式要方便點,你可以直接使用使用這個數據文件。
而壓縮成ZIP文件后,則需要利用解壓zip文件的庫如zipfile 來讀取zip文件內的數據文件。

自Python3.5 開始,Python標准庫中新增了zipapp模塊,也可以創建這樣的可執行zip文件。

參考

《Python Cookbook》

其它文章

優雅的查看json數據

可以的話可以關注一波個人微信公號
huangsh


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM