Разбор произвольного количества аргументов в Python OptParser - PullRequest
1 голос
/ 05 июля 2010

Как я могу определить опцию с произвольным числом аргументов в OptParser Python?

Я бы хотел что-то вроде:

python my_program.py --my-option X,Y  # one argument passed, "X,Y"

python my_prgoram.py --my-option X,Y  Z,W  # two arguments passed, "X,Y" and "Z,W"

опция nargs = в OptParser ограничивает меня определенным числом. Как я могу сделать что-то подобное?

parser.add_option("--my-options", dest="my_options", action="append", nargs="*")

который просто возьмет все, что будет после --my-option и поместит его в список? Например. для случая 1 должно быть ["X, Y"], для случая 2 должно быть ["X, Y", "Z, W"].

Как это можно сделать с помощью OptParser?

спасибо.

Ответы [ 2 ]

3 голосов
/ 05 июля 2010

Модуль optarse устарел в python 2.7 (который только что был выпущен!). Если вы можете обновить, то вы можете использовать его замену модуля argparse. Я думаю, что есть то, что вы хотите. Он поддерживает значение '*' для nargs.

http://docs.python.org/library/argparse.html#nargs

0 голосов
/ 05 июля 2010

Вы пытались пропустить бит n_args? Примеры в документации показывают, что вам это не нужно.

...