Python中的sys.argv是什麼含義

流動的風與雪發表於2020-10-13

sys.argv是一個從【程式外部】獲取引數的橋樑,從外部取得的引數可以是多個,所以獲得的是一個列表(list),也就是說sys.argv其實可以看作是一個列表,可以用[0]、[1]、[2]、[3]…等提取其中的元素。第一個元素(sys.argv[0])是程式本身,隨後才依次是外部給予的引數。

下面通過一個程式的執行結果來說明sys.argv的用法:

首先,將下面的程式碼儲存在一個名為test.py的檔案中:

# test.py

import sys
a = sys.argv[0]
print(a)

將檔案test.py儲存在系統D盤的根目錄下。

按Win鍵+R,輸入’cmd‘,開啟Windows命令列,使用‘d:’命令將路徑切換到D盤根目錄,在命令列中輸入‘python tesy.py’,得到的結果如下:

在這裡插入圖片描述

得到的是test.py,也就是說sys.argv[0]是程式本身的意思。

再試試。

用記事本開啟D盤的test.py檔案,將a = sys.argv[0]改為 a = sys.argv[1],儲存後,在命令列中輸入python test.py naruto(即多了naruto引數),執行結果如下:

在這裡插入圖片描述
輸出結果為naruto,即sys.argv[1]是程式外輸入的第一個引數。

再試試。

用記事本開啟D盤的test.py檔案,將a = sys.argv[1]改為 a = sys.argv[2:],儲存後,在命令列中輸入python test.py naruto sasuke sakura kakashi(即多了naruto, sasuke, sakura, kakashi引數,各引數用空格隔開),執行結果如下:

在這裡插入圖片描述
得到的結果是一個列表——[‘sasuke’, ‘sakura’, ‘kakashi’]

sys.argv其實就是一個列表,裡邊的項為使用者輸入的引數,關鍵就是要明白這引數是從程式外部輸入的,而非內部程式碼本身的什麼地方。要想看到它的效果,就應該將程式儲存了,從外部來執行程式並給出引數。

相關文章