溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

python常用模塊

發(fā)布時(shí)間:2020-06-30 15:06:18 來(lái)源:網(wǎng)絡(luò) 閱讀:2910 作者:fxl風(fēng) 欄目:編程語(yǔ)言

1.模塊和包

● 模塊定義:用來(lái)從邏輯上組織python代碼(變量,函數(shù),類(lèi),邏輯:實(shí)現(xiàn)一個(gè)功能),本質(zhì)就是.py結(jié)尾的python文件(文件名test.py,對(duì)應(yīng)的模塊名:test)

● 包定義:用來(lái)從邏輯上組件模塊的,本質(zhì)就是一個(gè)目錄(必須帶有一個(gè)__init__.py文件)


2.模塊和包導(dǎo)入本質(zhì)

● 導(dǎo)入模塊的本質(zhì)就是把python文件解釋一遍

● 導(dǎo)入包的本質(zhì)就是執(zhí)行該包下的__init__.py文件;如果要導(dǎo)入包下面的模塊:需要先導(dǎo)入包,然后包下的__init__.py文件中再導(dǎo)入該包下的模塊


3.導(dǎo)入模塊

import module_name                            #導(dǎo)入一個(gè)模塊
import module1_name,module2_name              #導(dǎo)入多個(gè)模塊
module_name.logger()                           #執(zhí)行模塊里的函數(shù)
modele_name.var                                #調(diào)用模塊里的變量

from module_name import method1 method2
from module_name import *                   #導(dǎo)入模塊的所有方法,不建議用
logger()                                       #直接調(diào)用模塊里的方法 ,不用模塊名加點(diǎn)

from module_name import logger as logger_feng         #導(dǎo)入將模塊里的logger方法并改名


4.導(dǎo)入不同包(目錄)下的python模塊

import os,sys
#print(__file__)                                 #動(dòng)態(tài)獲取當(dāng)前文件相當(dāng)路徑
#print(os.path.abspath(__file__))                        #動(dòng)態(tài)獲取當(dāng)前文件絕對(duì)路徑
#print(os.path.dirname(os.path.abspath(__file__))                         #動(dòng)態(tài)獲取當(dāng)前文件父目錄路徑
PATH=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))                 #這里獲取到的是ATM這個(gè)目錄的絕對(duì)路徑
sys.path.append(PATH)                               #將獲取到的絕對(duì)路徑加到環(huán)境變量
from core import main                             #從core目錄下import main
main.name("fengxiaoli")                              #調(diào)用main里的函數(shù)name

5.time模塊

python中通常時(shí)間的表示

●時(shí)間戳

格式化的時(shí)間字符串

元組時(shí)間

python常用模塊

●時(shí)間戳-->元組時(shí)間

>>> x = time.time()                           #獲取當(dāng)前時(shí)間戳
>>> time.gmtime(x)                            #將當(dāng)前時(shí)間戳轉(zhuǎn)化為utc時(shí)間元組
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=4, tm_hour=10, tm_min=4, tm_sec
=22, tm_wday=6, tm_yday=35, tm_isdst=0)
>>> time.localtime(x)                           #將當(dāng)前時(shí)間戳轉(zhuǎn)化為本地時(shí)間(utc+8)元組
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=4, tm_hour=18, tm_min=4, tm_sec
=22, tm_wday=6, tm_yday=35, tm_isdst=0)

>>> x1 = time.localtime(x)
>>> x1.tm_year                                   #獲取元組時(shí)間
2018
>>> x1.tm_mon
2


元組時(shí)間-->時(shí)間戳

>>> x1
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=4, tm_hour=18, tm_min=4, tm_sec
=22, tm_wday=6, tm_yday=35, tm_isdst=0)
>>> time.mktime(x1)
1517738662.0

元組時(shí)間-->自定義格式化字符串時(shí)間

>>> x1
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=4, tm_hour=18, tm_min=4, tm_sec
=22, tm_wday=6, tm_yday=35, tm_isdst=0)
>>> time.strftime("%Y-%m-%d %H:%M:%S",x1)
'2018-02-04 18:04:22'

●自定義格式化字符串時(shí)間-->元組時(shí)間

>>> help(time.strptime)       #查看strptime幫助
strptime(...)
    strptime(string, format) -> struct_time

>>> time.strptime("2018-02-04 18:04:22","%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=4, tm_hour=18, tm_min=4, tm_sec
=22, tm_wday=6, tm_yday=35, tm_isdst=-1)


python常用模塊

●時(shí)間戳-->格式化字符串

>>> x
1517738662.821426
>>> time.ctime(x)
'Sun Feb  4 18:04:22 2018'

●元組-->格式化字符串

>>> x1
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=4, tm_hour=18, tm_min=4, tm_sec
=22, tm_wday=6, tm_yday=35, tm_isdst=0)
>>> time.asctime(x1)
'Sun Feb  4 18:04:22 2018'


time模塊其他方法

>>> import time
>>> time.timezone                   #標(biāo)準(zhǔn)時(shí)間(utc)和本地時(shí)間(utc+8)相差多少秒
-28800                              #這里是本地時(shí)間比標(biāo)準(zhǔn)時(shí)間早28800秒,也就是早8小時(shí),也就是中國(guó)為utc+8時(shí)區(qū)
>>> 28800/3600
8.0

>>> time.altzone                   #標(biāo)準(zhǔn)時(shí)間和夏令時(shí)相差多少
-32400
>>> time.daylight                   #判斷是否是夏令時(shí)
0

>>> time.clock()                    #當(dāng)運(yùn)行time.clock()開(kāi)始,返回一個(gè)時(shí)間
1.0263524545646598e-05
>>> time.clock()
2.1054247858986015
>>> time.clock()
3.8245134020248224
>>> time.clock()
6.940938975648932
>>> time.clock()
15.189280774964526

>>> time.sleep(2)                 #程序睡2秒
>>> time.sleep(1)

>>> time.time()                    #返回一個(gè)時(shí)間戳,該時(shí)間戳是從1970到現(xiàn)在多少秒
1517737506.325569
>>> x=time.time()
>>> x/3600/24/365
48.12714301673213
>>> 1970+48
2018

6.datetime模塊

>>> import datetime
>>> print(datetime.datetime.now())                         #獲取當(dāng)前時(shí)間
2018-02-04 18:37:25.319604

>>> print(datetime.date.fromtimestamp(time.time()))                #將時(shí)間戳改為格式化字符串
2018-02-04

>>> print(datetime.datetime.now() + datetime.timedelta(3))            #當(dāng)前時(shí)間+3天
2018-02-07 18:40:59.8228
>>> print(datetime.datetime.now() + datetime.timedelta(-3))           #當(dāng)前時(shí)間-3天
2018-02-01 18:41:06.402249
>>> print(datetime.datetime.now() + datetime.timedelta(hours=3))         #當(dāng)前時(shí)間加3小時(shí)
2018-02-04 21:41:29.079546
>>> print(datetime.datetime.now() + datetime.timedelta(minutes= -3))      #當(dāng)前時(shí)間減3分鐘
2018-02-04 18:38:40.102177

>>> c_time = datetime.datetime.now()
>>> print(c_time.replace(minute=3,hour=2))                     #更改時(shí)間
2018-02-04 02:03:47.909055

7.random模塊

#隨機(jī)浮點(diǎn)數(shù)
>>> import random
>>> random.random()                         #生成一個(gè)0-1的隨機(jī)浮點(diǎn)數(shù)
0.7370268365256588
>>> random.uniform(1,3)                           #隨機(jī)打印1-3直接的浮點(diǎn)數(shù)
2.907184937455974
>>> random.uniform(1,5)
3.1441005290312556


#隨機(jī)整數(shù)
>>> random.randint(1,5)                                       #生成一個(gè)1-5的隨機(jī)整數(shù),包括1和5
5
>>> random.randint(1,5)
2

#隨機(jī)選取0-100間的偶數(shù)
>>> random.randrange(0,101,2)
6

>>> random.randrange(1,5)                                    #生成一個(gè)1-4的隨機(jī)整數(shù),不包括5
3
>>> random.randrange(1,5)
4

#隨機(jī)字符
>>> random.choice("hello")                                #隨機(jī)打印一個(gè)前面對(duì)象的元素
'o'
>>> random.choice([1,2,3,4])
2

#多個(gè)字符選取特定數(shù)量字符
>>> random.sample("hello",2)                               #指定個(gè)數(shù)隨機(jī)打印前面對(duì)象元素
['l', 'o']
>>> random.sample([1,2,3,4],2)
[3, 4]


#洗牌
>>> x = [1,2,3,4,5]
>>> random.shuffle(x)                       #將列表隨機(jī)打亂
>>> print(x)
[3, 1, 2, 4, 5]

#驗(yàn)證碼,生成4位隨機(jī)驗(yàn)證碼
import random
n = 4
checkcode = ""
for i in range(n):
    current = random.randrange(0,n)
    if i < current:
        tmp = random.randint(0,9)
    elif i==current:
        tmp = chr(random.randrange(97, 122))
    else:
        tmp = chr(random.randrange(65,90))
    checkcode+=str(tmp)
print(checkcode)

8.os模塊

#提供對(duì)操作系統(tǒng)進(jìn)行調(diào)用的接口

#對(duì)目錄操作
os.getcwd()                      #獲取當(dāng)前工作目錄,即當(dāng)前python腳本工作的目錄路徑
os.chdir("dirname")                      #改變當(dāng)前腳本工作目錄;相當(dāng)于shell下cd
os.curdir                        #返回當(dāng)前目錄: ('.')
os.pardir                        #獲取當(dāng)前目錄的父目錄字符串名:('..')
os.makedirs('dirname1/dirname2')                        #可生成多層遞歸目錄
os.removedirs('dirname1')                        #若目錄為空,則刪除,并遞歸到上一級(jí)目錄,如若也為空,則刪除,依此類(lèi)推
os.mkdir('dirname')                        #生成單級(jí)目錄;相當(dāng)于shell中mkdir dirname
os.rmdir('dirname')                        #刪除單級(jí)空目錄,若目錄不為空則無(wú)法刪除,報(bào)錯(cuò);相當(dāng)于shell中rmdir dirname
os.listdir('dirname')                        #列出指定目錄下的所有文件和子目錄,包括隱藏文件,并以列表方式打印

#對(duì)文件操作
os.remove()                       #刪除一個(gè)文件
os.rename("oldname","newname")                       #重命名文件/目錄
os.stat('path/filename')                       #獲取文件/目錄信息

os.sep                          #輸出操作系統(tǒng)特定的路徑分隔符,win下為"\\",Linux下為"/"
os.linesep                        #輸出當(dāng)前平臺(tái)使用的行終止符,win下為"\r\n",Linux下為"\n"
os.pathsep                        #輸出用于分割文件路徑的字符串
os.name                         #輸出字符串指示當(dāng)前使用平臺(tái)。win->'nt'; Linux->'posix'

os.system("bash command")                     #運(yùn)行shell命令,直接顯示
os.environ                       #獲取系統(tǒng)環(huán)境變量

os.path.abspath(path)                #返回path規(guī)范化的絕對(duì)路徑
os.path.split(path)                #將path分割成目錄和文件名二元組返回
os.path.dirname(path)                #返回path的目錄。其實(shí)就是os.path.split(path)的第一個(gè)元素
os.path.basename(path)                #返回path最后的文件名。如何path以/或\結(jié)尾,那么就會(huì)返回空值。即os.path.split(path)的第二個(gè)元素
os.path.exists(path)                #如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)                #如果path是絕對(duì)路徑,返回True
os.path.isfile(path)                #如果path是一個(gè)存在的文件,返回True。否則返回False
os.path.isdir(path)                #如果path是一個(gè)存在的目錄,則返回True。否則返回False
os.path.join(path2[, path3[, ...]])            #將多個(gè)路徑組合后返回,第一個(gè)絕對(duì)路徑之前的參數(shù)將被忽略
os.path.getatime(path)               #返回path所指向的文件或者目錄的最后存取時(shí)間
os.path.getmtime(path)              #返回path所指向的文件或者目錄的最后修改時(shí)

9.sys模塊

import sys
print(sys.argv)         #以list格式返回該腳本參數(shù),返回的第一個(gè)參數(shù)是執(zhí)行該腳本相當(dāng)路徑
如:python test.py 1 2 3
['test.py','1','2','3']

sys.exit(n)         #退出程序,正常退出時(shí)exit(0)
sys.version         #獲取python版本
sys.path            #返回模塊搜索路徑,初始化時(shí)使用pythonpath環(huán)境變量的值
sys.platform         #返回操作系統(tǒng)平臺(tái)
sys.stdout.write("--")     #標(biāo)準(zhǔn)輸出到屏幕

10.shutil模塊

#高級(jí)的 文件、文件夾、壓縮包 處理模塊

import shutil

f1 = open("file1","r",encoding="utf-8")
f2 = open("file2","w",encoding="utf-8")
shutil.copyfileobj(f1,f2)                     #復(fù)制文件1內(nèi)容到文件2,需要自己打開(kāi)關(guān)閉文件


shutil.copyfile("file1","file2")               #復(fù)制文件1內(nèi)容到文件2,不需要自己打開(kāi)關(guān)閉文件
shutil.copymode("file1","file2")               #僅拷貝權(quán)限,內(nèi)容,組,用戶(hù)均不變
shutil.copystat("file1","file2")                 #拷貝狀態(tài)的信息,包括 mode bits,atime,mtime,flags
shutil.copy("file1","file2")                   #拷貝文件和權(quán)限
shutil.copy2("file1","file2")                   #拷貝文件和狀態(tài)信息
shutil.copytree("srcdir","dstdir")                #遞歸的拷貝文件
shutil.rmtree("dstdir")                      #遞歸刪除文件
shutil.move("src","dst")                     #遞歸的去移動(dòng)文件


shutil.make_archive("base_name", format,...)           #創(chuàng)建壓縮包并返回文件路徑,例如:zip、tar

base_name:壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時(shí),則保存至當(dāng)前目錄,否則保存至指定路徑。
format:壓縮包種類(lèi),“zip”, “tar”, “bztar”,“gztar”
root_dir:要壓縮的文件夾路徑(默認(rèn)當(dāng)前目錄)
owner:用戶(hù),默認(rèn)當(dāng)前用戶(hù)
group:組,默認(rèn)當(dāng)前組
logger:用于記錄日志,通常是logging.Logger對(duì)象


11.zipfile模塊

import zipfile
impot os


#壓縮單個(gè)文件
import zipfileimport 
oswith zipfile.ZipFile('test.zip', 'w') as z:
    z.write('log.txt')  



#壓縮某個(gè)目錄下所有文件
def compress_file(zipfilename, dirname):                              # zipfilename是壓縮包名字,dirname是要打包的目錄/文件
    if os.path.isfile(dirname):
        with zipfile.ZipFile(zipfilename, 'w') as z:
            z.write(dirname)
    else:
        with zipfile.ZipFile(zipfilename, 'w') as z:
            for root, dirs, files in os.walk(dirname):        #這里用到了os.walk遍歷目錄下的文件,詳情參考o(jì)s的walk方法
                for single_file in files:
                    if single_file != zipfilename:
                        filepath = os.path.join(root, single_file)
                        z.write(filepath)
                        
compress_file('a.zip', '.')                                                #執(zhí)行函數(shù)  



#添加文件到已有的zip包中
def addfile(zipfilename, dirname):
    if os.path.isfile(dirname):
        with zipfile.ZipFile(zipfilename, 'a') as z:
            z.write(dirname)
    else:
        with zipfile.ZipFile(zipfilename, 'a') as z:
            for root, dirs, files in os.walk(dirname):
                for single_file in files:
                    if single_file != zipfilename:
                        filepath = os.path.join(root, single_file)
                        z.write(filepath)

addfile('a.zip', 'test.txt')



#查看壓縮包中的文件
def viewfile(zipfilename):
    with zipfile.ZipFile(zipfilename, 'r') as z:
        print(z.namelist())

viewfile('a.zip')

                         

#解壓
with zipfile.ZipFile('test.zip', 'r') as z:
    print(z.namelist())                                     # 查看壓縮包中的文件列表
    # print(z.read(z.namelist()[0]))                              # 讀出來(lái)壓縮包中的第一個(gè)文件的內(nèi)容打印到屏幕,也可保存到文件中
    z.extractall('C:\\Users\\Administrator\\PycharmProjects\\aaa')                         # 解壓,可設(shè)置解壓路徑
    # z.extract('log.txt')                                   # 解壓,可選擇解壓壓縮包中的某個(gè)文件
    #z.extractall()                                       # 解壓全部


12.tarfile模塊

import tarfile
import os

#壓縮文件
with tarfile.open('a.tar', 'w') as tar:
    tar.add('log.log', arcname='log.log')
    tar.add('test.txt', arcname='test.txt')


#解壓文件
with tarfile.open('a.tar', 'r') as tar:
    print(tar.getmembers())                                      # 查看壓縮包內(nèi)文件成員
    # tar.extract('test.txt')                                    # 可選擇解壓某個(gè)文件
    # tar.extractall('ccc')                                      # 可設(shè)置解壓路徑
    tar.extractall()                                             # 解壓全部

		
#壓縮某個(gè)目錄下所有文件	
def compress_file(tarfilename, dirname):                         # tarfilename是壓縮包名字,dirname是要打包的目錄
    if os.path.isfile(dirname):
        with tarfile.open(tarfilename, 'w') as tar:
            tar.add(dirname)
    else:
        with tarfile.open(tarfilename, 'w') as tar:
            for root, dirs, files in os.walk(dirname):
                for single_file in files:
                    # if single_file != tarfilename:
                    filepath = os.path.join(root, single_file)
                    tar.add(filepath)

compress_file('test.tar', 'test.txt')
compress_file('t.tar', '.')



#添加文件到已有的tar包中
def addfile(tarfilename, dirname):                                # tarfilename是壓縮包名字,dirname是要打包的目錄
    if os.path.isfile(dirname):
        with tarfile.open(tarfilename, 'a') as tar:
            tar.add(dirname)
    else:
        with tarfile.open(tarfilename, 'a') as tar:
            for root, dirs, files in os.walk(dirname):
                for single_file in files:
                    # if single_file != tarfilename:
                    filepath = os.path.join(root, single_file)
                    tar.add(filepath)

addfile('t.tar', 'ttt.txt')
addfile('t.tar', 'ttt')


13.xml模塊

import xml.etree.ElementTree as ET              #導(dǎo)入xml模塊并取別名

tree = ET.parse("xml_test.xml")                 #找到xml文件內(nèi)存地址
root = tree.getroot()                           #找到xml文件根內(nèi)存地址
print(root.tag)                                 #打印xml文件根標(biāo)簽

# 遍歷xml文檔
for child in root:
    print(child.tag, child.attrib)
    for i in child:
        print(i.tag, i.text,i.attrib)

# 只遍歷year 節(jié)點(diǎn)
for node in root.iter('year'):
    print(node.tag, node.text)

    
    
    
    
#修改和刪除xml文檔內(nèi)容
import xml.etree.ElementTree as ET
tree = ET.parse("xmltest.xml")
root = tree.getroot()

# 修改
for node in root.iter('year'):
    new_year = int(node.text) + 1
    node.text = str(new_year)
    node.set("updated", "yes")

tree.write("xmltest.xml")

# 刪除node
for country in root.findall('country'):
    rank = int(country.find('rank').text)
    if rank > 50:
        root.remove(country)

tree.write('output.xml')

#自己創(chuàng)建xml文件
import xml.etree.ElementTree as ET

new_xml = ET.Element("namelist")
name = ET.SubElement(new_xml, "name", attrib={"enrolled": "yes"})
age = ET.SubElement(name, "age", attrib={"checked": "no"})
sex = ET.SubElement(name, "sex")
sex.text = '33'
name2 = ET.SubElement(new_xml, "name", attrib={"enrolled": "no"})
age = ET.SubElement(name2, "age")
age.text = '19'

et = ET.ElementTree(new_xml)  # 生成文檔對(duì)象
et.write("test.xml", encoding="utf-8", xml_declaration=True)

ET.dump(new_xml)              # 打印生成的格式


14.configparser模塊

#將字符寫(xiě)為配置文件的形式
import configparser

config = configparser.ConfigParser()
config["DEFAULT"] = {'ServerAliveInterval': '45',
                     'Compression': 'yes',
                     'CompressionLevel': '9'}

config['bitbucket.org'] = {}
config['bitbucket.org']['User'] = 'hg'

config['topsecret.server.com'] = {}
topsecret = config['topsecret.server.com']

topsecret['Host Port'] = '50022'  # mutates the parser
topsecret['ForwardX11'] = 'no'  # same here

config['DEFAULT']['ForwardX11'] = 'yes'

with open('example.ini', 'w') as configfile:
    config.write(configfile)



#讀configparser文件
import configparser
conf =configparser.ConfigParser()
conf.read("example.ini")

# print(conf.defaults())
# print(conf["bitbucket.org"]["user"])
# #print(conf.sections())
for i in conf["topsecret.server.com"]:
    print(i)



#刪除
import configparser
conf =configparser.ConfigParser()
conf.read("example.ini")
sec=conf.remove_section("bitbucket.org")
conf.write(open("example.cfg","w"))


#改寫(xiě)
import configparser
conf =configparser.ConfigParser()
conf.read("example.ini")
sec=conf.remove_section("bitbucket.org")
sec=conf.add_section("fengxiaoli.org")
sec=conf.set("fengxiaoli.org","k1","111")

conf.write(open("example.cfg","w"))


14.re模塊

# re.match 從頭開(kāi)始匹配 ,返回一個(gè)

# re.search 匹配包含,返回一個(gè)

# re.findall 把所有匹配到的字符放到以列表中的元素返回,返回所有

# re.splitall 以匹配到的字符當(dāng)做列表分隔符

# re.sub      匹配字符并替換

import re

#match方法
c="chen234feng3252cxasfgj54gvf"
res1=re.match("chen",c)
res2=re.match("^chen\d+",c)
res3=re.match(".+",c)
#res4=re.match("cx",c)  #匹配不到cx,因?yàn)閞e.match只能從頭開(kāi)始匹配
print(res1.group())
print(res2.group())
print(res3.group())
#print(res4.group())

#search方法
c="chen234fengdfasfcx3252cxasfgj54gvf"
res1=re.search("cx",c)
res2=re.search("feng.*cx",c)
res3=re.search("^chen.+cx",c)
res4=re.search("feng[a-z]+cx",c)
res5=re.search("[0-9]{3}",c)  #匹配連續(xù)出現(xiàn)3次數(shù)字的字符
res6=re.search("[0-9]{1,3}",c)  #匹配連續(xù)出現(xiàn)數(shù)字,1次到3次的字符,re.search只能返回一個(gè)
res7=re.search("(abc){2}","fengabcabcffcxabc")  #將abc分組,匹配連續(xù)出現(xiàn)兩次的abc
print(res1.group())
print(res2.group())
print(res3.group())
print(res4.group())
print(res5.group())
print(res6.group())
print(res7.group())


#分組匹配  '(?P<name>...)'
res10=re.search("(?P<id>[0-9]+)(?P<name>[a-zA-Z]{4})",c).groupdict()
print(res10)
#輸出
{'id': '234', 'name': 'feng'}


res11=re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})", "371481199306143242").groupdict()
#結(jié)果
print(res11)
#{'province': '3714', 'city': '81', 'birthday': '1993'}


#findall方法
c="c1hen234fengdfas1fcx3252cxasfgj54gvf"
res1=re.findall("cx",c)
res2=re.findall("feng|cx",c)
res6=re.findall("[0-9]{1,3}",c)
print(res1)
print(res2)
print(res6)


#split方法
res=re.split("[0-9]","dsf34dsf46kjl6")  #按指定字符分割
res1=re.split(":","dsf:34ds:f46kjl6")
print(res)
print(res1)


#sub方法
res=re.sub("[0-9]+","AAA","afd454dffb56756sdg11feng") #將匹配的字符替換為指定字符
res1=re.sub("[0-9]+","AAA","afd454dffb56756sdg11feng",count=2) #指定替換的次數(shù)
print(res)
print(res1)


注:
# re.I(re.IGNORECASE): 忽略大小寫(xiě)(括號(hào)內(nèi)是完整寫(xiě)法,下同)
# M(MULTILINE): 多行模式,改變'^'和'$'的行為
# S(DOTALL): 點(diǎn)任意匹配模式,改變'.'的行為

#res1=re.search("fengxiaoli","\nFengXiaoLi123Cx456\nKdf564",flags=re.I)  #忽略大小寫(xiě)
#res1=re.search("^Feng","\nFengXiaoLi123Cx456\nKdf564",flags=re.M)   #
res1=re.search("Cx.+564","\nFengXiaoLi123Cx456\nKdf564",flags=re.S)  #默認(rèn)點(diǎn)不能匹配\n,加上re.S后可以
print(res1.group())








向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI