簡體   English   中英

Python中的可選命令行參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM