在寫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!
參考《python cookbook》其它文章
優雅的檢視json資料
docker目錄對映加z或Z標籤是什麼含義呢?
如果使用selinux,則可以新增z或z選項來修改要裝入容器的主機檔案或目錄的selinux標籤。這會影響主機本身上的檔案或目錄,並可能導致超出docker範圍的後果。這些選項請格外小心。繫結安裝系統目錄 例如 home或 usr帶有該z選項 會使主機無法操作,並且您可能需要手動重新標記主機檔案。重...
shell小技巧實戰 判斷檔案或目錄是否存在
在編寫shell指令碼時,通常最開始的工作是對環境的檢查,比如檢查某一檔案或目錄是否存在,並執行相應的操作等。下面的shell指令碼實現的功能是,先檢查某一目錄是否存在,不存在的話就建立此目錄,存在的話就cd到這個目錄下。bin bash 指定用到的shell直譯器 export mypath tm...
python中執行shell命令的小技巧
今天在寫乙個python檔案,其中想要去執行系統shell命令,在這條命令中,會用到pyhton變數,但是當我使用subprocess.popen 這個函式去執行的時候,會預設將變數當成乙個字串來使用,這就很尷尬了。下面 為我的處理辦法 lines ff.readlines for line cod...