Я использую эту Библиотеку для разбора аргументов в Python: https://docs.python.org/2/library/argparse.htmlУправление нескольких следующих позиционный аргумент с argparse
До сих пор у меня есть это:
prog arg1 [-s arg2 [arg2 ...]] [-m arg3 [arg3 ...]]
И я хочу это:
prog arg1 -s arg2 [arg2 ...] -m arg3 [arg3 ...]
Это мой код для питона:
parser = argparse.ArgumentParser()
parser.add_argument('path', type=str,
help="path used for the generation of the rouge files")
parser.add_argument('-s', '--systems', type=str, nargs='+',
help="path to the systems generated summary files")
parser.add_argument('-m', '--models', type=str, nargs='+',
help="path to the reference summary files")
args = parser.parse_args()
print args
Проблема заключается в том, что вы вызываете программу без дополнительных аргументов, она не дает ошибку (слишком мало аргументов). Я хочу, чтобы мои необязательные аргументы, чтобы быть обязательно, но когда вы сделаете следующий вызов, анализатор не выяснить, какой вид арг участвуют ...
Для Exemple со следующим кодом:
parser = argparse.ArgumentParser()
parser.add_argument('arg1', type=str, nargs='+')
parser.add_argument('arg2', type=str, nargs='+')
parser.add_argument('arg3', type=str, nargs='+')
args = parser.parse_args()
А следующий вызов:
python test.py arg1 arg1 arg1 arg2 arg2 arg3 arg3
Я получил это:
Namespace(arg1=['arg1', 'arg1', 'arg1', 'arg2', 'arg2'], arg2=['arg3'], arg3=['arg3'])
Наверняка ее е формат этой прогой:
prog arg1 [arg1 ...] arg2 [arg2 ...] arg3
Спасибо за помощь :)
Что ваш вопрос? Работает ли этот код? –
Этот код работает, но аргументы необязательны. Я не понимаю, как заставить их быть обязательно. – Cadene
Что вы подразумеваете под «обязательным». Аргументы 'nargs = '+'' уже требуются. –