一、sys.argv是什麼
sys.argv
是python自帶的一個模塊,它是一個列表,其中包含了命令行參數傳來的所有參數。
運行python腳本時,可以在腳本後面加上不同的命令行參數,這些參數會被作為一個列表存入sys.argv
中,其第一個元素是腳本文件的名稱。
import sys print(sys.argv)
運行此腳本,可以看到輸出為:
['test.py']
現在執行以下命令:
python test.py hello world
輸出將會是:
['test.py', 'hello', 'world']
二、解析命令行參數
在實際開發中,我們需要根據需求對命令行參數進行解析和處理,argparse
是python自帶的一個模塊,可以讓我們更加方便地進行命令行參數的解析。
首先,我們需要導入argparse
模塊。
import argparse parser = argparse.ArgumentParser(description='This is a description of the program') parser.add_argument('-v', '--verbose', help='verbose information', action='store_true') parser.add_argument('-n', '--name', default='World', help='name to greet', type=str) args = parser.parse_args() if args.verbose: print('verbose mode enabled') print(f'Hello, {args.name}!')
在上述代碼中,我們通過add_argument()
方法添加了兩個命令行參數:-v/–verbose和-n/–name。
-v/–verbose參數會把args.verbose
置為True,同時輸出verbose mode enabled;-n/–name參數需要一個額外參數,用來指定name的值,如果該參數沒有輸入,則默認值為“World”,程序會輸出Hello, World!。如果命令行輸入了-n ‘python’這樣的參數,則輸出Hello, python!。
三、sys.argv與argparse的區別和使用場景選擇
sys.argv
通常用於解析較為簡單的命令行參數,比如想要獲取用戶輸入的文件名,在命令行中輸入:python your_script.py myfile.txt
,那麼在腳本中,可以通過sys.argv[1]獲取到myfile.txt,然後進行相應的文件操作。
argparse
則適用於對複雜命令行參數的解析和處理,比如一個程序有多個選項,且每個選項可能帶有不同的參數。
選擇合適的方式,可以讓我們更加方便地開發和維護代碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184326.html