"对命令行参数的解释已经通过使用Python模块argparse来实现。通过提供要处理的用户输入元素,argparse将被用来给程序的定制和重用,以代替在函数中明确指定变量。"
命令行接口
与命令行脚本进行协商的方法是通过命令行接口或CLI。尽管Python有几个模块,我们可以用来为不同的脚本构建命令行接口,但现在Python的argparse包是这样做的有效方法。
Python的argparse模块是作为标准框架的一个组成部分提供的。它是创建Python接口的首选方法。早期的 "getopt "和 "optparse "库由于缺乏一些关键的功能而被这个库所取代。
Argparse模块的用途
这些是Python argparse模块的用途:
-
- 为一个项目提供不同的参数单位。
- 支持对位置参数的利用。
- 允许子命令的中间性。
- 允许修改前缀元素。
基于某些参数,一个主要的命令行分析器可以利用额外的命令行分析器。
命令行界面的利用
现在我们知道了什么是命令行接口,我们可能会关心什么时候把它纳入程序是合适的。一般来说,如果我们决定提供一种用户友好的定制项目的方法,我们就会考虑到命令行界面。
合适的技术是使用Python的argparse模块。通过使用Python argparse模块构造一个命令行界面来处理数值是一个很好的方法,除非我们正在构造一个复杂的命令行脚本,需要一个配置文件来发挥作用。这种方式可以让用户指定要使用谁的配置文件。
如何通过使用Python Argparse包构建命令行界面
使用Python argparse模块有4个阶段:
-
- 在Python中包含argparse框架。
- 构建解析器。
- 为解析器提供可选参数和位置参数。
- 运行parse_args()函数。
在调用parse_args()方法后,我们可以得到一个用户定义的对象,它对从命令行获得的每个输入参数都有一个基本属性。
让我们执行不同的例子,在这些例子中我们利用argparse模块。
例子1
argparse工具提供了一个处理命令行参数的有效接口。它显示了程序的一般用法、指令和异常情况。在接下来的插图中演示了适当的命令行参数的使用。
这个例子用命令行的单参数半径计算圆的面积。为了添加参数并分析它们,构建了ArgumentParser对象解析器。一个半径参数是由用户添加的,尽管它被作为一个可选参数留下。如果用户不给它一个值,该方法不会返回一个异常,并将参数的值设置为None,如下图所示。
import argparse
parser = argparse.ArgumentParser(description = 'Find the radius of any given circle')
parser.add_argument('-r','--radius', type = int, help='Calculated radius of any given circle')
args = parser.parse_args()
def main():
print(args.radius)
main()

在程序的开始,我们将导入头文件 "argparse"。在接下来的步骤中,我们将初始化一个变量 "parser",同时,我们将调用argumentpraser()方法。这个函数与argparse模块有关。我们已经给了 "描述 "作为argumentpraser()函数的参数。然后,我们添加不同的参数,所以我们利用函数add_argument()函数。这个函数有三个参数,包括圆的半径、半径的数据类型和 "帮助 "参数的值。
指定参数后,我们将调用解析器包的函数parse_args()。现在让我们来定义main()方法的主体。在这个函数中,我们一直在使用函数print()来显示给定圆的半径。最后,我们利用main()方法。

例子2
"required "是ArgumentParser对象的add_argument()方法的一个参数。属性为 "f "或 "foo "的参数是不必要的,因此,将被默认消除。如果用户想插入这个参数,参数 "required "需要可以被设置为True。如下图所示,每当我们将一个属性设置为 "required",但没有为其指定一个值时,编译器就会返回一个异常。
import argparse
parser = argparse.ArgumentParser(description = 'Determine radius of any circle', prog = 'The program', usage = '%(prog)s [options]')
parser.add_argument('-r','--radius', type = int, required = True, help='Calculated radius of any given circle')
args = parser.parse_args()
def main():
print(args.radius)
main()

首先,我们要整合 "argparse "模块。下面的步骤包括初始化变量 "parser",同时应用argparser()方法。这个方法与argparse包相关。argumentparser()方法的参数是 description 和 prog。
接下来,我们通过使用add_argument()方法添加一些额外的参数。圆的半径、半径的数据类型和 "帮助 "参数的值是这个函数的四个参数。我们将 "required "参数的值设置为 "True"。
除此之外,在提供参数后,我们将调用解析器头文件的parse_args()方法。然后我们将定义main()函数的主体。在这里,主函数的主体中使用了print()方法来显示圆的半径。我们最后使用main()函数。

总结
通过完成这篇文章,我们现在理解了一个命令行界面和使用argparse包构造单个命令行参数的方法。我们还讨论了什么是Python argparse模块,以及为什么用户在需要生成命令行Python代码时要利用它。如何以及何时使用argparse框架有效地构建一个基本接口。我们还观察了argparse模块的创新使用。一个有效的命令行界面可以为用户提供一个与他们的系统接触的机制。