Python – sys.argv

測試環境為 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 .

沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料