Python命令行参数处理与正则表达式基础指南

月亮慢半拍
月亮慢半拍
发布时间:2026-10-15| 4人浏览过
原创

本文详解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.py

sys.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())
# 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命令行参数的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。