📅  最后修改于: 2023-12-03 15:21:35.185000             🧑  作者: Mango
在命令行工具中,使用 argparse 可以非常方便地实现命令行参数的解析。有时候会遇到需要选择多个选项的情况,本文将介绍如何用 argparse 选择多个选项。
argparse 的 add_argument 方法支持通过 nargs 参数实现选择多个选项。nargs 参数可以接受以下值之一:
+
或 *
。+
表示一个或多个选项,*
表示零个或多个选项。以 +
为例:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('files', nargs='+')
args = parser.parse_args()
print(args.files)
在上面的例子中,我们使用 nargs='+'
接受一个及以上的参数,即选择多个选项。最后我们使用 args.files
来获取选项的值,它将包含所有选项的值的一个列表。
如果我们传递的选项有:
$ python test.py file1.txt file2.txt file3.txt
那么 args.files
将得到以下结果:
['file1.txt', 'file2.txt', 'file3.txt']
如果我们选用 *
,则可以接受零个或多个选项,更灵活一些。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--files', nargs='*')
args = parser.parse_args()
print(args.files)
在上面的例子中,我们使用 nargs='*'
接受零个及以上的参数。如果我们运行:
$ python test.py --files file1.txt file2.txt
那么 args.files
将得到以下结果:
['file1.txt', 'file2.txt']
如果没有传递选项,则 args.files
将为 []
。
argparse 的 add_argument 方法支持通过 action 参数实现选择多个选项。该参数可以接受以下值之一:
以 append 为例:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--files', action='append')
args = parser.parse_args()
print(args.files)
在上面的例子中,我们使用 action='append'
将每个选项的值添加到 args.files
列表中。如果我们运行:
$ python test.py --files file1.txt --files file2.txt
那么 args.files
将得到以下结果:
['file1.txt', 'file2.txt']
这两个例子展示了如何在 argparse 中实现选择多个选项的两种方法:nargs 和 action。nargs 更为灵活,但 action 更为精细。开发者可以根据实际需要选择使用。