網站首頁 編程語言 正文
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??梢允褂胓roup()獲取匹配成功的字符串。
語法: 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
常用的匹配規則
原文鏈接:https://cloud.tencent.com/developer/article/2056489
相關推薦
- 2022-04-09 C#8.0中的索引與范圍功能介紹_C#教程
- 2022-11-04 C++與QML進行數據交互實現方式介紹_C 語言
- 2022-06-04 Kubernetes中Deployment的升級與回滾_云和虛擬化
- 2022-03-27 Python編程入門指南之函數_python
- 2022-09-04 React18中請求數據的官方姿勢適用其他框架_React
- 2023-06-04 C#中+=是什么意思及+=的用法_C#教程
- 2022-10-18 pandas重復行刪除操作df.drop_duplicates和df.duplicated的區別_p
- 2022-03-07 Go語言參數傳遞是傳值還是傳引用_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支