1

在 Python 中,有没有办法为命令行选项指定无限数量的参数?例如类似的东西python myscript.py --use-files a b c d e。请注意,我严格想要使用命令行选项,例如我不只是想要python myscript.py a b c d e

4

1 回答 1

4

stdlib argparse模块的命令行选项很简单。Usingnargs="*"允许为选项提供任意多个参数:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--use-files', nargs='*', default=['a', 'b'])
args = parser.parse_args()
print(args)

输出:

$ python /tmp/spam.py 
Namespace(use_files=['a', 'b'])
$ python /tmp/spam.py --use-files hello world
Namespace(use_files=['hello', 'world'])
$ python /tmp/spam.py --use-files aleph-null bottles of beer on the wall, aleph-null bottles of beer, take one down pass it around, aleph-null bottles of beer on the wall
Namespace(use_files=['aleph-null', 'bottles', 'of', 'beer', 'on', 'the', 'wall,', 'aleph-null', 'bottles', 'of', 'beer,', 'take', 'one', 'down', 'pass', 'it', 'around,', 'aleph-null', 'bottles', 'of', 'beer', 'on', 'the', 'wall'])
于 2012-10-11T07:23:55.940 回答