首页  >  文章  >  后端开发  >  如何在 Python 中使用 argparse 将列表作为命令行参数处理?

如何在 Python 中使用 argparse 将列表作为命令行参数处理?

Linda Hamilton
Linda Hamilton原创
2024-10-27 17:57:30913浏览

How to Handle Lists as Command-Line Arguments with argparse in Python?

使用 argparse 将列表作为命令行参数处理

在 Python 中,argparse 模块有助于解析命令行参数。使用列表作为参数时,了解适当的选项至关重要。

nargs

一种方法是使用 nargs,它指定一个对象接受的参数数量。选项。默认情况下,nargs=1 接受单个参数。但是,使用 nargs=' ' 或 nargs='*' 允许多个参数。

<code class="python">parser.add_argument('-l', '--list', nargs='+', help='Set flag')</code>

action='append'

另一种选择是 action='append '。这种方法将每个遇到的参数附加到列表中,而不是将它们收集在单个参数中。

<code class="python">parser.add_argument('-l', '--list', action='append', help='Set flag')</code>

避免 type=list

相反,使用 type=list通常不建议与 argparse 一起使用。它将每个参数解释为一个列表,从而产生一个列表列表。

演示

提供的代码演示了这些选项的用法:

<code class="python">import argparse

parser = argparse.ArgumentParser()

# Demonstration with nargs
parser.add_argument('--nargs', nargs='+')

# Demonstration with action='append'
parser.add_argument('--append-action', action='append')

for _, value in parser.parse_args()._get_kwargs():
    if value is not None:
        print(value)</code>

输出:

假设使用 python arg.py --nargs 1234 2345 3456 4567 调用脚本,则 nargs 的输出将是:

['1234', '2345', '3456', '4567']

或者,使用 python arg.py --append-action 1234 --append-action 2345 --append-action 3456 --append-action 4567 调用脚本将产生:

['1234', '2345', '3456', '4567']

准则

  • 对于简单的用户交互,请考虑 nargs。
  • 当参数可以与位置参数混合时,或者当参数的确切数量时,首选 Action='append'不是预先确定的。
  • 避免使用 type=list,因为它会导致不需要的列表列表结构。

以上是如何在 Python 中使用 argparse 将列表作为命令行参数处理?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn