測試環境為 CentOS 8 x86_64 (虛擬機)
Python 要如何讀取從 command Line 命令列讀取 arguments(引數) , 如 python3 argv.py one two three , argv.py one two three 皆為 arguments(引數) , 需要透過 sys.argv 來讀取.
參考範例 – https://docs.python.org/zh-tw/3/tutorial/stdlib.html#command-line-arguments
[root@localhost ~]# vi argv1.py import sys print("sys.argv Content:", sys.argv) print("Second Parameter:", sys.argv[2])
執行結果
[root@localhost ~]# python3 argv1.py one two three sys.argv Content: ['argv1.py', 'one', 'two', 'three'] Second Parameter: two
說明:
匯入 sys 模組 (module),後面會使用到 sys.argv
import sys
sys.argv 列表包含 python 程式本身檔案名稱,以及所有在命令列 arguments(引數) .
print("sys.argv Content:", sys.argv)
指定讀取 sys.argv 列表 (引數數字從 0 開始, 數字 1 代表 python 程式本身檔案名稱) 的第 2 arguments(引數).
print("Second Parameter:", sys.argv[2])
命令列 arguments(引數) 的資料格式為 list 物件,存取 index 的數字如下.
list[start index : end index : sep]
end 取出來的值不包含結束的 index, sep(separate) 間隔預設為 1. 來看一下面面幾個範例.
- 範例 : sys.argv[1:]
[root@localhost ~]# vi argv2.py import sys print("sys.argv Content:", sys.argv) print("Parameter:", sys.argv[1:])
執行結果
[root@localhost ~]# python3 argv2.py one two three sys.argv Content: ['argv2.py', 'one', 'two', 'three'] Parameter: ['one', 'two', 'three']
說明:
sys.argv[1:] 指定讀取 sys.argv 列表 (引數數字從 0 開始, 數字 1 代表 python 程式本身檔案名稱) 從第 1 arguments(引數) 到最後一個引數. - 範例 : sys.argv[-1]
[root@localhost ~]# vi argv3.py import sys print("sys.argv Content:", sys.argv) print("Parameter:", sys.argv[-1])
執行結果
[root@localhost ~]# python3 argv3.py one two three sys.argv Content: ['argv3.py', 'one', 'two', 'three'] Parameter: three
說明:
sys.argv[-1] 指定讀取 sys.argv 列表 (引數數字從 0 開始, 數字 1 代表 python 程式本身檔案名稱) 從後面開始數的第 1 arguments(引數)也是就最後一個引數. - 範例 : sys.argv[::-1]
[root@localhost ~]# vi argv4.py import sys print("sys.argv Content:", sys.argv) print("Parameter:", sys.argv[::-1])
執行結果
[root@localhost ~]# python3 argv4.py one two three sys.argv Content: ['argv4.py', 'one', 'two', 'three'] Parameter: ['three', 'two', 'one', 'argv4.py']
說明:
sys.argv[::-1] 指定讀取 sys.argv 列表 (引數數字從 0 開始, 數字 1 代表 python 程式本身檔案名稱) 從後面開始. - 範例 : sys.argv[0:3]
[root@localhost ~]# vi argv5.py import sys print("sys.argv Content:", sys.argv) print("Parameter:", sys.argv[0:3])
執行結果
[root@localhost ~]# python3 argv5.py one two three sys.argv Content: ['argv5.py', 'one', 'two', 'three'] Parameter: ['argv5.py', 'one', 'two']
說明:
sys.argv[0:3] 指定讀取 sys.argv 列表 (引數數字從 0 開始, 數字 1 代表 python 程式本身檔案名稱) 從第 0 arguments(引數) 到 3 (不包含結束的 index) . - 範例 : sys.argv[0:3:2]
[root@localhost ~]# vi argv6.py import sys print("sys.argv Content:", sys.argv) print("Parameter:", sys.argv[0:3:2])
執行結果
[root@localhost ~]# python3 argv6.py one two threeee sys.argv Content: ['argv6.py', 'one', 'two', 'three'] Parameter: ['argv6.py', 'two']
說明:
sys.argv[0:3:2] 指定讀取 sys.argv 列表 (引數數字從 0 開始, 數字 1 代表 python 程式本身檔案名稱) 從第 0 arguments(引數) 到 3 (不包含結束的 index) 其 Sep 為 2 .