[英]Optional Command Line Parameter in Python
我正在嘗試檢索Python腳本的可選命令行參數(Windows下為2.7),並且運行不順利。 代碼是:
parser = argparse.ArgumentParser(description = 'Process display arguments')
parser.add_argument('-t', nargs = '?', default = 'baz')
args = parser.parse_args(['-t'])
print args.t
如果我不帶參數運行“ program.py
”,則args.t將顯示為“無”。 如果我運行“ program.py -t
”,則args.t將顯示為“無”。 如果我運行“ program.py -t foo
”,則args.t將顯示為“無”。
為什么我不能從命令行將值輸入args.t?
不要將['-t']
傳遞給parse_args。 做就是了:
args = parser.parse_args()
您傳遞給parse_args的所有參數都將代替命令行使用。 因此,使用該參數並不重要,無論您使用什么命令行,argparse都不會看到它。
這條線
args = parser.parse_args(["-t"])
正在將命令行參數[“ -t”]傳遞給解析器。 您想使用實際的命令行參數,因此將行更改為
args = parser.parse_args()
使用const關鍵字參數 :
import argparse
parser = argparse.ArgumentParser(description = 'Process display arguments')
parser.add_argument('-t', nargs = '?', const = 'baz', default = 'baz')
args = parser.parse_args()
print args.t
運行它會產生:
% test.py # handled by `default`
baz
% test.py -t # handled by `const`
baz
% test.py -t blah
blah
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.