Python 命令行参数

Python 命令行参数

Python中的命令行参数指的是从shell程序传递给Python程序的输入值。它们很容易理解。

正如您可能已经知道的那样,Python程序也可以使用关键字”python”或”python3″通过命令行shell程序来执行。在执行过程中,shell程序还允许用户向相应的Python程序传递参数或输入。这些参数被称为命令行参数。

传递命令行参数

由于命令行参数是在shell/终端的执行过程中传递给程序的,所以需要提供一个特定的命令来执行此过程。在执行过程中,必须在程序名称后面提到要传递的参数,以便解释器读取它。如果有多个参数,则它们之间用空格分隔。

以下是在终端中传递命令行参数的基本语法:

python file_name.py arg1 arg2 arg3…

在这里,

  • file_name.py是一个要执行的Python程序的占位符

  • arg1,arg2,arg3是要传递给Python程序的各种参数的占位符。

许多程序可以运行以提供关于如何运行它们的一些基本信息。Python可以通过“-h”来实现这一点−

$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
[ etc. ]

您还可以以这样的方式编写脚本,使其能够接受各种选项。命令行参数是一个高级主题,应该在您学习完其他Python概念后再深入研究。

访问命令行参数

在一个简单的Python程序中,如果通过简单的函数调用传递参数,那么程序中也必须存在一个函数定义来访问这些参数。同样,当通过命令行将参数传递给Python程序时,程序也必须访问这些参数。

Python提供了几种访问它们的方法:

  • 使用列表对象argv[]

  • 使用argparse模块

  • 使用getopt模块

使用argv[]列表对象

Python包含一个特殊的列表对象argv[],用于存储这些通过命令行传递的命令行参数。它们通过空格字符进行区分。argv[]在Python发行版的sys模块中定义。

例如,假设我们尝试将两个字符串作为参数传递给Python文件“test.py”,通过命令行执行它。

C:\users\acer>python test.py Hello TutorialsPoint

这个程序的List对象将包含以下内容−

sys.argv[]=[‘test.py’, ‘Hello’, ‘TutorialsPoint’]

使用argparse模块

argparse模块是一个内置模块,它可以减少样板代码并使你的代码更健壮。与使用特殊的List Object argv[]相比,argparse模块处理所有标准用例,包括子命令,并为你生成帮助和用法,检查和清理用户输入,而argv[]无法做到。

示例

例如,让我们尝试通过命令行执行以下Python程序“test.py”。

import argparse

parser = argparse.ArgumentParser("simple_example")
parser.add_argument('student_id', type=str, help='Show student_id')
args = parser.parse_args()

print("The Student Exists with ID:")
print(args.student_id)

输出

usage: simple_example [-h] student_id
simple_example: error: the following arguments are required: student_id

使用getopt模块

Python提供了getopt模块用于解析程序的命令行参数。该API的设计类似于C编程语言中的getopt()函数,因此支持与该函数相同的惯例。

该模块提供了一个同名方法 getopt() ,用于访问命令行参数。以下是该方法的语法

getopt.getopt(args, shortopts, longopts=[])

从我们可以看出,getopt()方法接受三个参数:args,shortopts和longopts。

其中,

  • args是命令行参数的列表

  • shortopts是一个字符串,包含脚本想要识别的选项字母。需要参数的选项后面应跟着冒号(:)。

  • longopts是一个字符串列表,包含长选项的名称。需要参数的选项后面应跟着等号(=)。

此方法相当于sys.args[1:],即它不访问程序的引用。

要详细了解这些方法并使用示例,请点击这里。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程