問題

documentation for argparse python模組,雖然很好,但我確信,現在太多我的小初學者大腦無法掌握.我不需要在命令列上進行數學或在螢幕上進行格式化行或更改選項字元.我想做的只是“如果arg是A,如果B這樣做,如果沒有上述任何幫助和退出”.

  最佳答案

我對原始問題的理解是雙倍的.首先,從最簡單的argparse示例來看,我感到驚訝的是我沒有在這裡看到它.當然,為了簡單起見,它也是帶有少量功率的開銷,但它可能會讓你開始.

 import argparse

parser = argparse.ArgumentParser()
parser.add_argument("a")
args = parser.parse_args()

if args.a == 'magic.name':
    print 'You nailed it!'
 

但是現在需要這個位置引數.如果您在呼叫此程式時放棄它,您將會收到關於缺失引數的錯誤.這導致我到原始問題的第二部分. Matt Wilkie似乎想要一個沒有名稱標籤(–option標籤)的可選引數.我的建議是修改上面的程式碼如下:

 ...
parser.add_argument("a", nargs='?', default="check_string_for_empty")
...
if args.a == 'check_string_for_empty':
    print 'I can tell that no argument was given and I can deal with that here.'
elif args.a == 'magic.name':
    print 'You nailed it!'
else:
    print args.a
 

可能有一個更優雅的解決方案,但這是有效的,並且是極簡主義的。

  相同標籤的其他問題

pythonargparse