大家好,歡迎來到 Crossin的程式設計教室 !
我想你最常用到的 Python 命令就是執行 Python 指令碼檔案,像這樣:
不過你知道為什麼這樣就可以直接執行 Python 程式碼麼?
還有, Python 還有一些常用的命令可玩,你試過嗎?
今天我們就來給大家來說說那些我們常用到的 Python 命令。
python xxx.py
當你透過 Python 執行指令碼檔案的時候,
sys.argv[0]
會儲存這個 py 檔名稱:
而當你在 python xxx。py 後面再新增一些引數的時候,
sys.argv
也同樣可以接收到相關的引數:
而且,它會把你的執行的 py 檔案路徑新增到
sys.path
中來,將它作為主模組來執行:
除了直接使用 python 執行指令碼檔案之外,你也可以使用 Python 執行整個 Python 專案目錄或者壓縮檔案,不過在這裡面你需要定義一個
__main__.py
,要不然直譯器無法識別執行:
而當你的目錄中有定義 __main__。py 的時候,它就可以將 main 新增到 sys。path 中來,作為 main 模組執行:
除此之外,你還可以直接使用指令碼的檔案執行 Python 程式碼,在你的指令碼檔案的第一行定義 Python 環境:
接著新增指令碼檔案的執行許可權,然後就可以直接用指令碼檔名稱直接執行 Python 了:
python -c
使用
python -c
可以讓你在命令列中寫 Python 程式碼執行,可以使用分號
;
進行程式碼分行:
一種更好的方式是使用
空行
對程式碼進行分行:
當你在 python 直譯器中使用 -c 命令的時候,它會將 -c 新增到 sys。argv[0] 中,將當前的路徑新增到 sys。path 中:
python -m
使用
-m
模組可以以指令碼的方式執行 Python 的模組或者包,因為執行的是模組,所以就不用像執行指令碼檔案那樣把 。py 副檔名稱寫出來。
可以看到,模組的完全路徑會新增到 sys。argv[0],將當前的路徑新增到 sys。path 中,將模組名作為 main 執行。
你能體會到
python xxx.py
和
python -m xxx
之間的區別麼?
當然,你也可以使用 -m 來執行包中的模組:
透過 -m 的形式,直譯器會透過搜尋路徑找到相應的模組執行,這樣你就不需要想執行 。py 那樣寫入檔案的絕對路徑啦。
使用 python -m 的一個常用場景是在不同的版本環境中執行相應的模組,比如使用
pip
安裝模組的時候:
python -i
當你使用 -c 命令的時候,還想執行完相關程式碼後進入 Python 互動模式就可以使用
-i
:
還有其它的命令,你可以透過
python -h
找到相關的解釋:
可能有時候你也想要提供一些命令給別人使用,Python 內建了一個
argparse
的庫,你可以使用它來建立你要提供的命令,比如這樣:
執行的時候就可以使用相關的命令了:
click庫
除此之外,還有一個叫做
click
的第三方庫,也是用來建立命令的,不同的是它可以用裝飾器的方式實現,你可以直接使用
@click.option
來定義命令選項,用起來相對簡單,這是一個官方的例子:
使用起來是這樣的:
當然,它還提供了多種建立命令的方式,你可以在以下連結中找到:
https://click。palletsprojects。com/en/6。x/