Python命令行参数处理与正则表达式基础指南
本文详解Python中通过sys模块获取命令行参数的方法,包括sys.argv列表的使用与切片技巧,并介绍更友好的argparse模块。同时深入讲解Python正则表达式基础,重点解析re模块中match函数的语法、参数及标志位应用,结合代码示例展示如何从字符串起始位置进行模式匹配。
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.pysys.argv返回的是一个包含命令行参数的列表,其中列表的第一个元素始终是当前Python脚本的文件名。如果用户希望忽略文件名而仅关注传入的参数,可以利用列表切片功能,因为sys.argv返回的是列表,直接通过切片操作即可提取所需参数。
import sys
# 使用切片的方式去除文件名
print('命令行参数%s' % sys.argv[1:])
# 命令行参数['1', '2', '3', '4', '5']
# 终端执行的命令为:python index.py 1 2 3 4 5
# 在终端一次输入多个参数的时候,中间不需要使用逗号隔开sys.argv仅提供了一种基础的命令行参数获取机制,并不具备命令行提示功能,无法像Linux命令行那样为用户提供help帮助信息。
argparse模块
概念:
argparse模块能够轻松编写出用户友好的命令行界面。该程序允许开发者定义所需的参数,argparse模块会自动解析sys.argv中的参数。
此外,argparse模块还会自动生成帮助文档和使用说明消息。当用户传入无效参数时,该模块会抛出异常以提示错误。

Python中的正则表达式
正则表达式简介
- 正则表达式(Regular Expression),也被称为规则表达式。它通常用于检索或替换符合特定模式(规则)的文本内容。
- 无论使用何种编程语言,正则表达式都是不可或缺的工具,大多数软件系统都会集成使用正则表达式。
- 在Python中使用正则表达式,只需引入Re模块即可。
注意:正则表达式的概念先于Python的Re模块存在,Re模块是对正则表达式理论的编程实现。
Re模块
我们将通过re模块来掌握正则表达式的常用匹配规则。
re.match方法
re.match函数尝试从字符串的起始位置匹配一个规则。如果匹配成功,则返回match对象;否则返回None。可以使用group()方法获取匹配成功的字符串内容。
语法: re.match(pattern,string,flag=0)
参数说明:
- pattern : 匹配的正则表达式模式。
- string : 需要被匹配的字符串。
- flags : 标志位,用于控制正则表达式的匹配方式,例如是否区分大小写、是否进行多行匹配等。
注意:该模块默认从字符串起始位置进行匹配,如果匹配失败则会返回None,需注意这一特性。
以下示例展示了没有设置标志位时调用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())
# liflags可选的标志位

- 如果同时存在多个标志位,使用 | 符号进行分隔,例如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命令行参数的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









