mam następujący program Pythona:Python argparse: Rodzaj niespójności podczas łączenia 'wybory', 'nargs' i 'default'
#!/usr/bin/env python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('arg', choices=['foo', 'bar', 'baz'], default='foo', nargs='*')
args = parser.parse_args()
print(args)
Gdybym wywołać program tak:
./prog.py
wyjście jest
Namespace(arg='foo')
Ale jeśli wywołać program z foo
jako argument:
./prog.py foo
wyjście jest
Namespace(arg=['foo'])
Pytanie
Jak mogę uzyskać arg
„s wartość domyślną, aby stać się list
?
Próbowałem
Próbowałem ustawienie default=['foo']
ale skutkuje:
prog.py: error: argument arg: invalid choice: ['foo'] (choose from 'foo', 'bar', 'baz')
Ten "duplikat" dotyczy akcji 'append'; jest to domyślny plik 'store' jeden. Mogę to ponownie otworzyć. – hpaulj
Duplikat, który odrzuciłem: http://stackoverflow.com/questions/8526675/python-argparse-optional-append-argument-with-choices – hpaulj