643

コマンド ライン プログラムに引数としてリストを渡そうとしています。argparseリストをオプションとして渡すオプションはありますか?

parser.add_argument('-l', '--list',
                      type=list, action='store',
                      dest='list',
                      help='<Required> Set flag',
                      required=True)

スクリプトは以下のように呼び出されます

python test.py -l "265340 268738 270774 270817"
4

12 に答える 12

21

に加えて、リストが事前にわかっている場合は、次nargsを使用することをお勧めします。choices

>>> parser = argparse.ArgumentParser(prog='game.py')
>>> parser.add_argument('move', choices=['rock', 'paper', 'scissors'])
>>> parser.parse_args(['rock'])
Namespace(move='rock')
>>> parser.parse_args(['fire'])
usage: game.py [-h] {rock,paper,scissors}
game.py: error: argument move: invalid choice: 'fire' (choose from 'rock',
'paper', 'scissors')
于 2014-03-27T11:52:07.553 に答える