使用Python中的Argparse实现将列表作为命令行参数传递

 更新时间:2023年08月25日 14:13:33   作者:鲸落_  
Argparse 是一个 Python 库,用于以用户友好的方式解析命令行参数,本文我们将讨论如何使用 Python 中的 Argparse 库将列表作为命令行参数传递,感兴趣的可以了解下

Argparse 是一个 Python 库,用于以用户友好的方式解析命令行参数。它可以轻松编写用户友好的命令行界面,并且广泛应用于Python应用程序中。在本教程中,我们将讨论如何使用 Python 中的 Argparse 库将列表作为命令行参数传递。

使用 Argparse 将列表作为命令行参数传递

要使用Argparse 库将 Python 列表作为命令行参数传递,我们将在 add_argument() 方法中使用“nargs”参数。“nargs”代表“参数数量”,它告诉 argparse 特定选项应该期望多少个参数。

使用 Argparse 将列表作为命令行参数传递的步骤

让我们看看使用 Python 中的 Argparse 库将列表作为命令行参数传递所涉及的步骤。

第1步: 导入所需模块

要使用argparse,您需要导入argparse模块。您可以通过在 Python 脚本的开头添加以下行来完成此操作:

import argparse

第 2 步: 创建参数解析器

接下来,通过调用 ArgumentParser() 方法创建一个参数解析器对象:

parser = argparse.ArgumentParser()

第 3 步: 添加参数

使用 add_argument() 方法将参数添加到参数解析器。使用type参数指定参数的数据类型,列表可以是任何类型,字符串,整数等。

parser.add_argument("--numbers", type=int)

第四步: 解析参数

最后,通过调用参数解析器对象上的 parse_args() 方法来解析命令行参数。这将返回一个包含已解析参数的对象。

args = parser.parse_args()

第 5 步: 访问列表

您可以使用 args 对象的“numbers”属性访问作为“–numbers”参数传递的整数列表。

print(args.numbers)

传递字符串列表

在此示例中,list_of_strings 函数将字符串作为输入并返回字符串列表。add_argument的类型参数设置为list_of_strings,因此当调用parse_args时,-str-list的字符串值被转换为字符串列表。

import argparse
# 为字符串列表定义自定义参数类型
def list_of_strings(arg):
	return arg.split(',')
# 创建ArgumentParser对象
parser = argparse.ArgumentParser()
# 为字符串列表添加参数
parser.add_argument('--str-list', type=list_of_strings)
# 分析命令行参数
args = parser.parse_args()
# 使用脚本中的字符串列表
print(args.str_list)

输出:

您可以使用以下命令运行此脚本。这里的“script.py”指的是保存的Python文件的名称。

python script.py --str-list foo,bar,baz

注意: 确保列表项之间没有空格,否则可能会生成错误。我们将在接下来的示例中了解如何解决此错误。

传递整数列表

在此示例中,list_of_ints 函数采用字符串作为输入并返回 Python 整数列表。add_argument的类型参数设置为list_of_ints,因此当调用parse_args时,-int-list的字符串值被转换为整数列表。

import argparse
# 为整数列表定义自定义参数类型
def list_of_ints(arg):
	return list(map(int, arg.split(',')))
# 创建ArgumentParser对象
parser = argparse.ArgumentParser()
# 为整数列表添加参数
parser.add_argument('--int-list', type=list_of_ints)
# 分析命令行参数
args = parser.parse_args()
# 在脚本中使用整数列表
print(args.int_list)

输出:

您可以使用以下命令运行此脚本:

python script.py --int-list 1,2,3,4,5,6

将列表作为命令行参数传递

让我们看一些在 Python 中将列表作为命令行参数传递的示例。

示例 1:使用 nargs='+' 传递一个或多个值

在此示例中,我们使用“add_argument”方法添加一个名为“my_list”的参数。“metavar”参数用于指定使用消息中的参数名称。“type”参数设置为“str”,因为我们希望列表是字符串列表。“nargs”参数设置为“+”表示该参数可以采用一个或多个值。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('my_list', metavar='N', type=str, nargs='+',
					help='a list of strings')
args = parser.parse_args()
print(args.my_list)

输出:

仅传递一个参数:

python my_script.py juejin

传递多个参数:

python my_script.py jue jin cn

示例 2:使用 nargs='*' 传递零个或多个值

在此示例中,“nargs”参数设置为“*”以指示该参数可以采用零个或多个值。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('my_list', metavar='N', type=str, nargs='*',
					help='a list of strings')
args = parser.parse_args()
print(args.my_list)

输出:

传递零参数:

python my_script.py

示例 3:传递可选参数

在此示例中,我们提供了两个参数,一个是强制性的,另一个是可选的。我们将“required”参数设置为“True”,这意味着它是强制性的。在第二个参数中,我们没有定义必需的参数,这意味着它是一个可选参数。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--string1', type=str, required=True)
parser.add_argument('--string2', type=str)
args = parser.parse_args()
if args.string2:
	print(args.string1, args.string2)
else:
	print(args.string1)

输出:

当两个参数都被定义时:

python my_script.py --string1 Hello --string2 world

当可选参数未定义时:

python my_script.py --string1 Hello

到此这篇关于使用Python中的Argparse实现将列表作为命令行参数传递的文章就介绍到这了,更多相关Python Argparse内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python多线程并发实例及其优化

    python多线程并发实例及其优化

    这篇文章主要介绍了python多线程并发实例及其优化,threading是扩展模块,在thread的基础上进行了封装及改进。所以只需要使用threading这个模块就能完成并发的测试,需要的朋友可以参考下
    2019-06-06
  • Python内置函数all()的实现

    Python内置函数all()的实现

    Python内置函数 all() 用于判断可迭代对象中的所有元素是否都为真值(Truthy),是逻辑判断的重要工具,下面就来具体介绍如何使用,感兴趣的可以了解一下
    2025-04-04
  • Python实现周日历与时间相互转换

    Python实现周日历与时间相互转换

    周日历是日常生活中不常用到的历法系统,一般用于政府、商务的会计年度或者学校教学日历中。本文为大家介绍了如何利用Python语言实现周日历与时间相互转换,感兴趣的可以学习一下
    2022-07-07
  • python如何通过psutil获取服务器cpu、内存、磁盘使用率

    python如何通过psutil获取服务器cpu、内存、磁盘使用率

    这篇文章主要介绍了python通过psutil获取服务器cpu,内存,磁盘使用率,使用psutil,可以很方便地监控系统的运行状况,诊断问题和优化性能,需要的朋友可以参考下
    2023-04-04
  • 详解Python中最难理解的点-装饰器

    详解Python中最难理解的点-装饰器

    记得我好几年前刚学Python的时候,看装饰器就觉得看九阴真经里面的怪文字,完全看不懂,确实装饰器是一个非常难以理解的概念,相信很多初学者一定也有这样的困惑,所以篇文章主要介绍了关于Python中装饰器的相关资料,需要的朋友可以参考下。
    2017-04-04
  • Python(Pandas、Dask、PySpark等库)在大数据处理中的学习心得

    Python(Pandas、Dask、PySpark等库)在大数据处理中的学习心得

    作者分享了他对Python在大数据处理中的学习心得,介绍了大数据的概念、特点及处理挑战,讨论了Python的优势及常用的大数据处理库,比较了Python与Rust在大数据处理中的优劣,并提出了大数据处理的最佳实践
    2026-04-04
  • Python正则表达式和re库知识点总结

    Python正则表达式和re库知识点总结

    在本篇文章中小编给大家分享了关于Python正则表达式和re库知识点内容,有兴趣的朋友们学习下。
    2019-02-02
  • Jupyter Notebook界面汉化完整步骤

    Jupyter Notebook界面汉化完整步骤

    这篇文章主要给大家介绍了关于Jupyter Notebook界面汉化的相关资料,设置成中文界面后非常利于操作,文中介绍的方法非常简单,需要的朋友可以参考下
    2023-09-09
  • Python中requests、aiohttp、httpx性能比拼

    Python中requests、aiohttp、httpx性能比拼

    本文主要介绍了Python中requests、aiohttp、httpx性能比拼,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Python 常用数据类型相同点、差异与使用指南

    Python 常用数据类型相同点、差异与使用指南

    在Python编程中,合理选择数据类型是编写高效、可维护代码的关键,本文将对Python中常用的几种数据类型进行全面对比分析,帮助读者更好地理解它们的特性,并做出明智的选择
    2025-09-09

最新评论