我正在編寫一個程序,需要查找在命令行中設置的兩個參數之一,並根據設置的值將其保存到單個變量中。檢查某些參數並將值賦給任意變量
如果我稱這樣的程序:
myprogram -a --foo 123
我希望變量action
設置爲'a value'
。這樣稱呼它:
myprogram -b --foo 123
而且action
應設置爲'another value'
。兩者都不要打電話:
myprogram -c --foo 123
而且它應該使用信息退出。
顯然,我可以用這一事實後,一些if
語句做到這一點:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a', action='count')
parser.add_argument('-b', action='count')
parser.add_argument('--foo')
....
args = parser.parse_args()
if args.a == 0 and args.b == 0:
parser.print_usage()
sys.exit(1)
if args.a > 0:
action = 'a value'
elif args.b > 0:
action = 'another value'
但我不知道是否argparse能爲我用更少的代碼做。從我在文檔中看到的東西是不可能的,但是Python對我來說非常新穎。謝謝。
我不認爲有,你將不得不在某處有一個if:else:語句。 – MCManuelLP