Python脚本开发中的命令行参数及传参示例详解
作者:Java学术趴
sys模块
在使用python开发脚本的时候,作为一个运维工具,或者是其他工具需要在接受用户参数运行时,这里就可以用到命令行传参的方式,可以给使用者一个比较友好的交互体验。
python可以使用 sys 模块中的 sys.argv 命令来获取命令行参数,其中返回的参数是一个列表
在实际开发中,我们一般都使用命令行来执行 python 脚本
使用终端执行python文件的命令:python 指定文件名
import sys # 使用 sys.argv 来获取命令行参数 # 在终端使用 python 指定python文件名 来执行python文件 print('命令行参数的个数%s' % len(sys.argv)) # 命令行参数的个数1 print('命令行参数%s' % sys.argv) # 命令行参数['index.py'] # 因为此时只有一个参数,那么就是这个python文件 # 终端执行的命令为:python index.py
argv返回命令行参数的一个列表,其中第一个元素是 py的文件名。如果不想获取到文件名,那么完全可是使用切片的方式,因为命令行返回的结果是一个列表,完全可以使用切片的方式。
import sys # 使用切片的方式去除文件名 print('命令行参数%s' % sys.argv[1:]) # 命令行参数['1', '2', '3', '4', '5'] # 终端执行的命令为:python index.py 1 2 3 4 5 # 在终端一次输入多个参数的时候,中间不需要使用逗号隔开
sys.argv 只提供了比较简单的命令行参数获取方式,并没有提供命令行提示。无法做到像liunx命令行一样,可以给使用者提供help帮助。
argparse模块
概念:
argparse模块可以轻松的编写用户友好的命行界面。该程序定义了他需要的参数,argparse并将找出如何解析这些参数 sys.argv。
该argparse模块还会自动生成帮助和用法消息,并在用户给出的程序无效参数时发生异常。
Python中的正则表达式
正则表达式简介
- 正则表达式(Regular Exception),又称规则表达式。正则表达式通常用来检索、替换那些符合某个模式(规则)的文本。
- 不论是何种语言,都离不开正则表达式,大多数软件都会使用到正则表达式。
- 在 python 中使用正则表达式只需要引入一个 Re模块。
注意:先有的正则表达式,后有的 Re 模块。
Re模块
我们使用re模块来掌握正则表达式的常用匹配规则
re.match方法
re.match尝试从字符串的起始位置匹配一个规则,匹配成功就返回match对象,否则返回None。可以使用group()获取匹配成功的字符串。
语法: re.match(pattern,string,flag=0)
参数说明:
- pattern : 匹配的正则表达式
- string : 要匹配的字符串
- flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
注意:这个模块是从起始位置进行匹配的,否则会报错。
以下示例是没有标志位的调用 match 函数
# 测试 re 模块中关于正则表达式的方法 import re saying: str = 'life is short, i use Python' # 使用 re.match 方法获取匹配成功的字符串 res1 = re.match('L', saying) # res1等于None,match只能匹配以 xxx 开头的子字符串,因为saying是以小写字母l开头的 # 所以匹配失败。 res2 = re.match('l', saying) print(res2.group()) # l,匹配成功 res3 = re.match('li', saying) print(res3.group()) # li
flags可选的标志位
- 如果同时存在多个标志位使用 | 分隔,比如re.L | re.M
# 测试 re 模块中关于正则表达式的方法 import re saying: str = 'life is short, i use Python' # 使用 re.match 方法获取匹配成功的字符串,给定标志位(忽略大小写) res = re.match('L', saying, re.I) print(res.group()) # l
常用的匹配规则
以上就是Python脚本开发中的命令行参数及传参示例详解的详细内容,更多关于Python命令行参数的资料请关注脚本之家其它相关文章!