在 Python 中检查 Argparse 的参数
本篇文章将讨论 argparse 的使用,我们将使用条件语句和 Python 中的参数名称检查 argparse 中是否存在参数。
在 Python 中检查 argparse 的参数
在命令行中使用 Python 的 argparse 库来编写用户友好的界面。 例如,我们可以使用脚本名称运行脚本并提供运行脚本所需的参数。
我们可以在脚本文件的名称后添加参数,argparse 库会将这些参数转换为可以在脚本中使用的对象来执行所需的任务。 我们还可以在每个参数中附加帮助、用法和错误消息,以帮助用户。
例如,如果用户输入无效参数,argparse 库将显示错误以及用户应如何输入参数。 例如,让我们讨论 argparse 库的一个简单示例。
请参阅下面的代码。
import argparse
My_parser = argparse.ArgumentParser()
My_parser.parse_args()
输出:
PS C:\Users\ammar> python test.py -h
usage: test.py [-h]
optional arguments:
-h, --help show this help message and exit
要运行上述脚本,我们必须在 cmd(命令提示符)中编写 python test.py -h
并确保将 Python 添加到 Windows 上的系统路径或环境变量中。 如果未添加,我们可以使用 python.exe 文件的完整路径。
我们还必须确保命令提示符的当前目录设置为 Python 文件的目录; 如果不是,我们必须提供 Python 文件的完整路径。
例如,假设我们必须将 Python 添加到系统路径,并且我们也不在 Python 文件的当前目录中。 我们必须将上面输出中的第一行更改为下面一行。
& C:/Users/ammar/python.exe "c:/Users/ammar/test.py" -h
上面的行在 Windows PowerShell 中进行了测试,对于 cmd,我们必须删除行开头的 &
。 在上面的输出中,我们可以观察到只有一个参数用于帮助。
我们可以使用 add_argument()
函数在参数解析器中添加参数。 我们可以设置两种类型的参数:一种是位置参数,另一种是可选参数。
我们必须在参数前使用单 - 或双连字符 - 使其成为可选的。 我们还可以使用 help 参数为参数添加帮助,并将其值设置为 add_argument()
函数内的字符串。
我们可以使用 ArgumentParser()
函数内的 description 和 epilog 参数在帮助部分前后添加文本。 parse_args()
将命令提示符中传递的参数转换为对象并返回它们,可用于稍后执行操作。
例如,让我们从用户那里获取一个字符串参数并显示它。 请参阅下面的代码。
import argparse
import string
My_parser = argparse.ArgumentParser(description="text before help.....", epilog="text after help.....")
My_parser.add_argument("firstArg", help="You can use string here", type=str)
My_args = My_parser.parse_args()
print(My_args.firstArg)
输出:
PS C:\Users\ammar> python test.py
usage: test.py [-h] firstArg
test.py: error: the following arguments are required: firstArg
PS C:\Users\ammar> python test.py -h
usage: test.py [-h] firstArg
text before help.....
positional arguments:
firstArg You can use string here
optional arguments:
-h, --help show this help message and exit
text after help.....
PS C:\Users\ammar> python test.py hello
hello
我们已经运行了 3 次上述 Python 文件,可以在输出中看到结果。 第一次,我们在没有任何参数的情况下运行该文件,并出现一条错误消息,指出需要一个参数,但未通过。
第二次,我们使用-h 参数运行脚本,这个参数用于帮助,代码显示了脚本的用法和帮助。 我们使用命令提示符上显示的字符串第三次运行脚本。
我们可以使用 add_argument()
函数的类型参数来设置参数的数据类型,例如 str 用于字符串,int 用于整数数据类型。 所有传递的参数都存储在 My_args 变量中,我们可以使用此变量来检查是否传递了特定参数。
检查是否设置了 argparse 可选参数
在可选参数的情况下,如果没有传递参数,则 parse_args()
方法将为该特定参数返回 None 。 我们可以使用条件语句来检查参数是否为 None,如果参数为 None,则表示未传递参数。
例如,让我们添加一个可选参数并检查参数是否被传递,并相应地显示结果。 请参阅下面的代码。
import argparse
import string
My_parser = argparse.ArgumentParser(description="text before help.....", epilog="text after help.....")
My_parser.add_argument("-firstArg", help="You can use string here", type=str)
My_args = My_parser.parse_args()
if My_args.firstArg is not None:
print("Argument passed")
else:
print("No Argument passed")
输出:
PS C:\Users\ammar> python test.py
No Argument passed
PS C:\Users\ammar> python test.py -firstArg hello
Argument passed
我们运行了两次上面的脚本,有参数和没有参数,并相应地显示了一个文本。 我们可以使用带有条件语句的 is not None 和 is None 语句来确定是否传递参数。
请注意
,在可选参数的情况下,我们还必须在传递参数之前使用它们的名称。 确保我们要检查的参数没有设置默认值,因为在默认值的情况下,参数永远不会是 None 。
例如,让我们在上面的代码中使用 add_argument()
函数中的 default 关键字添加一个默认值,然后重复上面的过程。 请参阅下面的代码。
import argparse
import string
My_parser = argparse.ArgumentParser(description="text before help.....", epilog="text after help.....")
My_parser.add_argument("-firstArg", help="You can use string here", type=str, default="default_value")
My_args = My_parser.parse_args()
if My_args.firstArg is not None:
print("Argument passed")
else:
print("No Argument passed")
输出:
PS C:\Users\ammar> python test.py
Argument passed
PS C:\Users\ammar> python test.py -firstArg hello
Argument passed
我们可以在上面的输出中观察到,如果我们不传递参数,由于默认值,代码仍然会显示传递的参数。 我们可以多次使用 add_argument()
函数来添加多个参数。
如果我们想限制用户对输入的选择,我们可以在 add_argument()
中使用 choices 参数,并将其值设置为一个值列表,该列表只允许作为参数传递给脚本。
相关文章
Python 循环缓冲区
发布时间:2023/06/20 浏览次数:51 分类:Python
-
循环缓冲区是环形缓冲区的另一个名称。 Python 中的高效循环缓冲区。高效的循环缓冲区是一种允许高效插入和删除数据的数据结构。
Cron 类似 Python 中的调度程序
发布时间:2023/06/20 浏览次数:120 分类:Python
-
本篇文章将介绍调度类似于 Linux 中的 cron 作业的任务。 首先,我们将查看调度模块以在进程内调度中调度我们的作业。
通过 Crontab 执行 Python 脚本
发布时间:2023/06/20 浏览次数:57 分类:Python
-
在本文中,我们将探讨 Crontab 以及如何使用它来运行 Python 脚本。Linux/Unix/Solaris 中的 Crontab
克隆 Git 存储库的 Python 方法
发布时间:2023/06/20 浏览次数:196 分类:Python
-
让我们看看我们可以在 Python 环境中克隆 Git 存储库的不同方法。使用 PyCharm 克隆 Git 存储库
在 Python 中计算两个 GPS 点之间的距离
发布时间:2023/06/19 浏览次数:134 分类:Python
-
计算两个 GPS 点之间的距离是我们可以在 Python 框架内操作的地理和数学练习。 现在让我们看看如何使用 Python 执行此操作。在 Python 中使用 Haversine 公式计算两个 GPS 点之间的距离
Python 中的 Verbose
发布时间:2023/06/19 浏览次数:70 分类:Python
-
在这个简短的指南中,我们将学习 verbose 以及如何在 Python 中实现它。Python 中的详细信息 详细模式是一种计算功能,也是许多计算机操作系统和编程语言中的通用概念。
Python 中的 Promise 系列
发布时间:2023/06/19 浏览次数:61 分类:Python
-
本篇文章将介绍如何用 Python 编写一系列 promise。 首先,我们将讨论 Python 中的异步编程。接下来,我们将讨论 Python 中的回调函数。
Python 中的队优先级列比较器
发布时间:2023/06/19 浏览次数:192 分类:Python
-
本文将研究使用 Python 开发自定义优先级队列。 除此之外,我们还将学习如何将自定义比较器函数与优先级队列一起使用。Python 中的优先级队列
为 Python 创建别名
发布时间:2023/06/19 浏览次数:194 分类:Python
-
在这种情况下,您决定保留两个版本的 Python。 在本文中,我们将学习如何在拥有两个 Python 版本的情况下创建别名。为 Python 创建别名