1
此代碼的Python:允許位置參數進行最後指定或者它在幫助輸出先寫使用argparse
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('target', help='Specifiy who to attack!')
magic = ['fireball', 'heal', 'microwave']
parser.add_argument('-m', '--magic', nargs='*',
choices=magic,
help=('Magic'))
parsed_arguments = parser.parse_args()
時可獲得該幫助輸出
usage: Example.py [-h]
[-m [{fireball,heal,microwave} [{fireball,heal,microwave} ...]]]
target
positional arguments:
target Specifiy who to attack!
optional arguments:
-h, --help show this help message and exit
-m [{fireball,heal,microwave} [{fireball,heal,microwave} ...]], --magic [{fireball,heal,microwave} [{fireball,heal,microwave} ...]]
Magic
我想幫助輸出令人困惑,並使它看起來應該是最後指定的目標,但不起作用:python example.py -m fireball troll
給出argument -m/--magic: invalid choice: 'troll'
。
我意識到語言的語法變得模糊不清,但仍然有可能說出句子troll
中最後一個詞應該存在一個詞(目標)不是-m
選項的參數。
問題:
- 有沒有辦法讓沒有argparse毆打多少最後指定的位置參數?
- 有沒有辦法讓argparse幫助輸出表明應該首先指定目標?
POSIX系統的一個常見做法是使用'--'來表示選項的結束。例如:'command -m something somethingelse - target' – mensi 2012-04-24 10:39:59
謝謝!這真的很有用,而且確實是'-m火球 - 巨魔'的作品。我仍然希望解答OP中的問題。我想2是最重要的,因爲我認爲它對命令的用戶很有價值。 – Deleted 2012-04-24 11:04:07