日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Python腳本開發(fā)中的命令行參數(shù)及傳參示例詳解_python

作者:Java學(xué)術(shù)趴 ? 更新時間: 2022-09-21 編程語言

sys模塊

在使用python開發(fā)腳本的時候,作為一個運維工具,或者是其他工具需要在接受用戶參數(shù)運行時,這里就可以用到命令行傳參的方式,可以給使用者一個比較友好的交互體驗。

python可以使用 sys 模塊中的 sys.argv 命令來獲取命令行參數(shù),其中返回的參數(shù)是一個列表

在實際開發(fā)中,我們一般都使用命令行來執(zhí)行 python 腳本

使用終端執(zhí)行python文件的命令:python 指定文件名

import sys
# 使用 sys.argv 來獲取命令行參數(shù)
# 在終端使用 python 指定python文件名 來執(zhí)行python文件
print('命令行參數(shù)的個數(shù)%s' % len(sys.argv))
# 命令行參數(shù)的個數(shù)1
print('命令行參數(shù)%s' % sys.argv)
# 命令行參數(shù)['index.py']
# 因為此時只有一個參數(shù),那么就是這個python文件
# 終端執(zhí)行的命令為:python index.py

argv返回命令行參數(shù)的一個列表,其中第一個元素是 py的文件名。如果不想獲取到文件名,那么完全可是使用切片的方式,因為命令行返回的結(jié)果是一個列表,完全可以使用切片的方式。

import sys
# 使用切片的方式去除文件名
print('命令行參數(shù)%s' % sys.argv[1:])
# 命令行參數(shù)['1', '2', '3', '4', '5']
# 終端執(zhí)行的命令為:python index.py 1 2 3 4 5
# 在終端一次輸入多個參數(shù)的時候,中間不需要使用逗號隔開

sys.argv 只提供了比較簡單的命令行參數(shù)獲取方式,并沒有提供命令行提示。無法做到像liunx命令行一樣,可以給使用者提供help幫助。

argparse模塊

概念:

argparse模塊可以輕松的編寫用戶友好的命行界面。該程序定義了他需要的參數(shù),argparse并將找出如何解析這些參數(shù) sys.argv。

該argparse模塊還會自動生成幫助和用法消息,并在用戶給出的程序無效參數(shù)時發(fā)生異常。

Python中的正則表達(dá)式

?正則表達(dá)式簡介

  • 正則表達(dá)式(Regular Exception),又稱規(guī)則表達(dá)式。正則表達(dá)式通常用來檢索、替換那些符合某個模式(規(guī)則)的文本。
  • 不論是何種語言,都離不開正則表達(dá)式,大多數(shù)軟件都會使用到正則表達(dá)式。
  • 在 python 中使用正則表達(dá)式只需要引入一個 Re模塊。

注意:先有的正則表達(dá)式,后有的 Re 模塊。

Re模塊

我們使用re模塊來掌握正則表達(dá)式的常用匹配規(guī)則

re.match方法

re.match嘗試從字符串的起始位置匹配一個規(guī)則,匹配成功就返回match對象,否則返回None。可以使用group()獲取匹配成功的字符串。

語法: re.match(pattern,string,flag=0)

參數(shù)說明:

  • pattern : 匹配的正則表達(dá)式
  • string : 要匹配的字符串
  • flags : 標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等等。

注意:這個模塊是從起始位置進(jìn)行匹配的,否則會報錯。

以下示例是沒有標(biāo)志位的調(diào)用 match 函數(shù)

# 測試 re 模塊中關(guān)于正則表達(dá)式的方法
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可選的標(biāo)志位

  • 如果同時存在多個標(biāo)志位使用 | 分隔,比如re.L | re.M
# 測試 re 模塊中關(guān)于正則表達(dá)式的方法
import re
saying: str = 'life is short, i use Python'
# 使用 re.match 方法獲取匹配成功的字符串,給定標(biāo)志位(忽略大小寫)
res = re.match('L', saying, re.I)
print(res.group())
# l

常用的匹配規(guī)則

原文鏈接:https://cloud.tencent.com/developer/article/2056489

欄目分類
最近更新