国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

使用Python處理文本,整理信息(2)

TIGERB / 2768人閱讀

摘要:通過(guò)函數(shù)找到所有符合上述要求的文本內(nèi)容,并賦值給,通過(guò)打印,該值是一個(gè),每一個(gè)匹配項(xiàng)作為一個(gè)列表單元。循環(huán)遍歷上述的查找結(jié)果通過(guò)查找出來(lái)的內(nèi)容,使用訪問(wèn),并將剝?nèi)ィ妥兂刹畚恍畔⒘恕Mㄟ^(guò)查找出來(lái)的內(nèi)容,經(jīng)過(guò)處理就變成信息了。

處理思科設(shè)備 show inventory輸出內(nèi)容 任務(wù)目標(biāo)

通過(guò)Python讀取show inventory的內(nèi)容,并將設(shè)備的槽位、模塊型號(hào)和序列號(hào)自動(dòng)寫(xiě)入CVS文件。否則,我需要打開(kāi)每一個(gè)文件,找到設(shè)備每一個(gè)槽位、母卡、子卡和序列號(hào),并一一填寫(xiě)到表格中。操作繁瑣且重復(fù),因此考慮用Python實(shí)現(xiàn)。

show inventory 輸出內(nèi)容示例
RP/0/RP0/CPU0:crs-1#admin show inventory 
Thu Jul XX 16:08:46.990 GMT
NAME: "0/1/*", DESCR: "Cisco CRS Series Modular Services Card 400G"
PID: CRS-MSC-X, VID: V03, SN: CAT20XXXX0J

NAME: "ControlEthernet0/1/CPU0", DESCR: "CPU_PORT_0"
PID:    , VID: N/A, SN: 

NAME: "0/PL1/*", DESCR: "Cisco CRS Series 4x100GbE Interface Module"
PID: 4X100GE-LO, VID: V01, SN: CATXXXXT00W

NAME: "HundredGigE0/1/0/0", DESCR: "100GBASE-LR4"
PID: CPAK-100G-LR4  , VID: V04, SN: FBNXXXX0141

NAME: "HundredGigE0/1/0/1", DESCR: "100GBASE-LR4"
PID: CPAK-100G-LR4  , VID: V04, SN: FBNXXXX0582

NAME: "HundredGigE0/1/0/2", DESCR: "100GBASE-LR4"
PID: CPAK-100G-LR4  , VID: V04, SN: FBNXXXX0546

NAME: "HundredGigE0/1/0/3", DESCR: "100GBASE-LR4"
PID: CPAK-100G-LR4  , VID: V04, SN: FBNXXXX0340

NAME: "0/4/*", DESCR: "Cisco CRS-1 Series Modular Services Card revision B"
PID: CRS-MSC-B, VID: V07, SN: SADXXXX020C

NAME: "ControlEthernet0/4/SP", DESCR: "CPU_PORT_0"
PID:    , VID: N/A, SN: 

NAME: "ControlEthernet0/4/CPU0", DESCR: "CPU_PORT_1"
PID:    , VID: N/A, SN: 

NAME: "0/PL4/*", DESCR: "Cisco Carrier Routing System SPA Interface Processor Card"
PID: CRS1-SIP-800, VID: V04, SN: SALXXXXGX57

NAME: "0/4/0", DESCR: "1-port OC192/STM64 POS/RPR XFP Optics"
PID: SPA-OC192POS-XFP, VID: V05, SN: SALXXXXFAN0
Python代碼的實(shí)現(xiàn)
# 引入re、csv模塊
import re
import csv

# 將待處理的文件讀入data_buff。
with open(inventory) as file_obj:
data_buff = file_obj.read()

# 定義幾個(gè)正則表達(dá)式對(duì)象如下:
mixRegex = re.compile(r"^NAME: .*
"
r"^PID: .*SN: .*"
,re.MULTILINE)
mix_match = mixRegex.findall(data_buff)

nameRegex = re.compile("^NAME: .*,")
modRegex = re.compile("^PID: .*,",re.MULTILINE)
snRegex = re.compile("SN: .*",re.MULTILINE)

# 以上幾個(gè)正則表達(dá)式的目的如下:
# mixRegex,該表達(dá)式匹配以”NAME:”開(kāi)頭,并且,第二行以”P(pán)ID:”開(kāi)頭,包含”SN:”。
# 通過(guò)findall函數(shù)找到所有符合上述要求的文本內(nèi)容,并賦值給mix_match,通過(guò)打印,該值是一個(gè)list,每一個(gè)匹配項(xiàng)作為一個(gè)列表單元。
# nameRegex、modRegex和snRegex分別在以下代碼中進(jìn)行過(guò)濾
# 初始化兩個(gè)列表,其中一個(gè)作為子列表,最終形成一個(gè)二維列表。
slot_map = []
sub_map = []

# for循環(huán)遍歷上述的查找結(jié)果mix_match;
# 通過(guò)nameRegex查找出來(lái)的內(nèi)容,使用group()訪問(wèn),并將”NAME: ”剝?nèi)ィ妥兂刹畚恍畔⒘恕W址詈蠖嘁粋€(gè)”””是為了防止Excel表自動(dòng)的把0/4/0改成日期。len(slot) < 10,是去除一些不需要統(tǒng)計(jì)的內(nèi)容,如"ControlEthernet0/4/SP"。
# 通過(guò)modRegex查找出來(lái)的內(nèi)容,經(jīng)過(guò)處理后就變成PID信息了。
# 通過(guò)snRegex查找出來(lái)的內(nèi)容,經(jīng)過(guò)處理就變成SN信息了。
# 然后分別把這些信息存入list sub_map中,再存到slot_map,變?yōu)槎S表。

for each_pair in mix_match:
slot = nameRegex.search(each_pair).group()[7:-1]
if len(slot) < 10:
        card = modRegex.search(each_pair).group().split(",")[0][5:].strip()
        sn = snRegex.search(each_pair).group()[4:]
        # print(sn)
        sub_map.append(slot)
        sub_map.append(card)
        sub_map.append(sn)
        slot_map.append(sub_map)
        # print(sub_map)
    sub_map = []

# 以下代碼將上述生成的二維列表寫(xiě)入到CSV文件中。
csv_output = inventory + "-slotmap.csv"

with open(csv_output,"w") as file_obj:
    wr = csv.writer(file_obj)
    for list in slot_map:
        wr.writerow(list)

前一篇文章寫(xiě)了處理show ip int brief輸出。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40658.html

相關(guān)文章

  • 數(shù)據(jù)分析遇到PDF文本,怎么用Python批量提取內(nèi)容

    摘要:復(fù)雜系統(tǒng)仿真的微博客虛假信息擴(kuò)散模型研究面向影子分析的社交媒體競(jìng)爭(zhēng)情報(bào)搜集面向人機(jī)協(xié)同的移動(dòng)互聯(lián)網(wǎng)政務(wù)門(mén)戶(hù)探析經(jīng)驗(yàn)證。微博客的企業(yè)競(jìng)爭(zhēng)情報(bào)搜集移動(dòng)社交媒體用戶(hù)隱私保護(hù)對(duì)策研究注意這里的提示,原先的個(gè)文件沒(méi)有被再次抽取,只有個(gè)新文件被抽取。 showImg(https://segmentfault.com/img/bVbiU7y?w=1000&h=508); 本文為你展示,如何用Pyth...

    cloud 評(píng)論0 收藏0
  • 重磅 | 完備的 AI 學(xué)習(xí)路線(xiàn),最詳細(xì)的資源整理

    摘要:是你學(xué)習(xí)從入門(mén)到專(zhuān)家必備的學(xué)習(xí)路線(xiàn)和優(yōu)質(zhì)學(xué)習(xí)資源。的數(shù)學(xué)基礎(chǔ)最主要是高等數(shù)學(xué)線(xiàn)性代數(shù)概率論與數(shù)理統(tǒng)計(jì)三門(mén)課程,這三門(mén)課程是本科必修的。其作為機(jī)器學(xué)習(xí)的入門(mén)和進(jìn)階資料非常適合。書(shū)籍介紹深度學(xué)習(xí)通常又被稱(chēng)為花書(shū),深度學(xué)習(xí)領(lǐng)域最經(jīng)典的暢銷(xiāo)書(shū)。 showImg(https://segmentfault.com/img/remote/1460000019011569); 【導(dǎo)讀】本文由知名開(kāi)源平...

    荊兆峰 評(píng)論0 收藏0
  • 利用Python好好的整理你的附件

    摘要:主要用來(lái)調(diào)用命令行,因?yàn)槟K無(wú)法解析的文件,所以在解析前將的文件轉(zhuǎn)換成文件。主要用于遍歷文件夾獲取文件。總結(jié)利用還是減少了一定的重復(fù)勞動(dòng),但面對(duì)一些不標(biāo)準(zhǔn)的東東貌似還沒(méi)有很好的方式。 目前我的文件夾中有500多份簡(jiǎn)歷,如果我想知道一些信息,比如學(xué)校,學(xué)歷之類(lèi)的,我需要打開(kāi)每一份word去查看,太耗時(shí)間了。這個(gè)時(shí)候python需要出馬了。 目標(biāo) 目前類(lèi)似截圖中的word有600+,想簡(jiǎn)單...

    cyrils 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

TIGERB

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<