python中有以下内置模块函数用于处理命令行参数
sys:获取和python解释器相关的信息,可通过dir()查询模块内定义的所有名称。使用方法:import sysgetopt
getopt
optparse
argparse
1.sys命令行参数
sys.argv:是以列表的方式获取运行python程序的命令行参数。
sys.argv[]用法sys.argv[0]指python 程序本身(*.py);
sys.argv[1]指程序第一个参数
sys.argv[2]指程序第2个参数
sys.argv[0]表示程序文件本身文件名(含路径)
sys.argv[1:]表示运行命令的第二个到最后一个参数
sys.argv 表示运行命令的全部参数
2.getopt命令行参数
getopt是对sys.argv获取的命令行参数进行二次处理
def getopt(args, shortopts, longopts = []):
###
args和shortopts属于必传参数,longopts为非必传参数
shortopts是必传参数,不可省略,传入''也行
params:args是用来解析的命令行字符串,通常为sys.argv[1:]
params:shortopts是用来匹配命令行中的短参数,为字符串类型
parmas:longopts是用来匹配命令行中的长参数,为列表类型
return:opts为列表嵌套元组类型,用来存放解析好的参数和值(暨是(选项,选项值)的元组为一个元素的列表,如果没有选项值为空字符串)
元组(),列表[]return:args为列表类型,用来存放不匹配的命令行参数
###
return opts, args
###
短参数的调用方式为:-参数名(空格)值
长参数的调用方式为:--参数名=值
###
getopt()使用 案例
短格式选项说明
: 代表选项后面需要接一个值
:: 代表选项后面接一个可选值
长格式选项说明
= 代表选项后面需要接一个值
本次知识点可参考博客:https://www.cnblogs.com/Alfred-HOO/articles/16629580.html
3.optparse命令行参数
optparse模块主要用来为脚本传递参数,采用预先定义好的选项来解析命令行参数怕,与getopt函数不同点是optparse可以自动生成帮助信息。
该模块使用add_option() 来加入选项,使用 parse_args() 来解析命令行
add_option(self, *args, **kwargs)中的参数含义:
第一个参数表示option的缩写,以单个中划线引导,例如-f、-d,只能用单个字母,可以使用大写;
第二个参数表示option的全拼,以两个中划线引导,例如--file、--Opencv_version;
第一第二个参数可以单独使用,也可以同时使用,但必须保证有其中一个;
从第三个参数开始是命名参数,是可选参数,常用的几个:
type=: 表示输入命令行参数的值的类型,默认为string,可以指定为string, int, choice, float,complex其中一种;
default=: 表示命令参数的默认值;
metavar=: 显示到帮助文档中用来提示用户输入期望的命令参数;
dest=:指定参数在options对象中成员的名称,如果没有指定dest参数,将用命令行参数名来对options对象的值进行存取。
help=: 显示在帮助文档中的信息;
解析命令行:(options, args) = parse.parse_args()或(options, args) = parser.parse_args(argv)
options,是一个对象,保存命令行参数值。通过命令行参数名,如 file,访问其对应的值: options.file ;
args,是一个由 positional arguments 组成的列表;
optparse模块的使用4.argparse命令行参数
argparse是optparse模块的升级版。argparse主要包含ArgumentParser类和一些其他有用的子模块,常见的子模块有argparse.ArgumentParser.add_argument()方法、argparse.ArgumentParser.parse_args()方法和argparse.Namespace类。argparse.ArgumentParser类用于解析命令行参数,它提供了add_argument()方法来定义命令行参数的类型、默认值、帮助信息、特定行为和许多其他属性。
add_argument()方法包含多个参数,最常用的参数如下:
name or flags(参数名):字符串或列表,用来定义参数的名字或选项(例如"--input" 或 "-i")。参数名和选项名必须以"--"或"-"开头。
type(参数类型):指定参数的类型,如int、float、str和bool。
default(默认值):指定参数的默认值,如果没有设置此参数,则表示参数是必需的。
help(帮助信息):用来描述参数的帮助信息,当用户输入"--help"时,会显示此信息。
action(特定行为):定义参数的特定行为,如store、store_true、store_false等。
nargs:用于指定参数数量,如"?"表示0或1个参数,"*"表示0或多个参数,"+"表示1或多个参数
dest=:指定参数在parse对象中成员的名称
argparse.ArgumentParser.parse_args()方法用于解析命令行参数,并返回一个包含所有参数值的命名空间对象
案例 结果
网友评论