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

資訊專欄INFORMATION COLUMN

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

TIGERB / 2782人閱讀

摘要:通過函數找到所有符合上述要求的文本內容,并賦值給,通過打印,該值是一個,每一個匹配項作為一個列表單元。循環遍歷上述的查找結果通過查找出來的內容,使用訪問,并將剝去,就變成槽位信息了。通過查找出來的內容,經過處理就變成信息了。

處理思科設備 show inventory輸出內容 任務目標

通過Python讀取show inventory的內容,并將設備的槽位、模塊型號和序列號自動寫入CVS文件。否則,我需要打開每一個文件,找到設備每一個槽位、母卡、子卡和序列號,并一一填寫到表格中。操作繁瑣且重復,因此考慮用Python實現。

show inventory 輸出內容示例
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代碼的實現
# 引入re、csv模塊
import re
import csv

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

# 定義幾個正則表達式對象如下:
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)

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

# for循環遍歷上述的查找結果mix_match;
# 通過nameRegex查找出來的內容,使用group()訪問,并將”NAME: ”剝去,就變成槽位信息了。字符最后多一個”””是為了防止Excel表自動的把0/4/0改成日期。len(slot) < 10,是去除一些不需要統計的內容,如"ControlEthernet0/4/SP"。
# 通過modRegex查找出來的內容,經過處理后就變成PID信息了。
# 通過snRegex查找出來的內容,經過處理就變成SN信息了。
# 然后分別把這些信息存入list sub_map中,再存到slot_map,變為二維表。

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 = []

# 以下代碼將上述生成的二維列表寫入到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)

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/40658.html

相關文章

  • 數據分析遇到PDF文本,怎么用Python批量提取內容

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

    cloud 評論0 收藏0
  • 重磅 | 完備的 AI 學習路線,最詳細的資源整理!

    摘要:是你學習從入門到專家必備的學習路線和優質學習資源。的數學基礎最主要是高等數學線性代數概率論與數理統計三門課程,這三門課程是本科必修的。其作為機器學習的入門和進階資料非常適合。書籍介紹深度學習通常又被稱為花書,深度學習領域最經典的暢銷書。 showImg(https://segmentfault.com/img/remote/1460000019011569); 【導讀】本文由知名開源平...

    荊兆峰 評論0 收藏0
  • 利用Python好好的整理你的附件

    摘要:主要用來調用命令行,因為模塊無法解析的文件,所以在解析前將的文件轉換成文件。主要用于遍歷文件夾獲取文件??偨Y利用還是減少了一定的重復勞動,但面對一些不標準的東東貌似還沒有很好的方式。 目前我的文件夾中有500多份簡歷,如果我想知道一些信息,比如學校,學歷之類的,我需要打開每一份word去查看,太耗時間了。這個時候python需要出馬了。 目標 目前類似截圖中的word有600+,想簡單...

    cyrils 評論0 收藏0

發表評論

0條評論

TIGERB

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<