想获取pci号与网卡名字得对应关系 以字典形式返回,然后通过字典信息对网卡做相应得操作,比如做bonding

写了一段代码,想获取网卡与pci号得对应关系


#coding:utf-8
import re
import os

dict1={}

cmd='lshw -c net -businfo |grep pci>1.txt'
result=os.system(cmd)

with open('1.txt', 'r') as fb:
    for line in fb:
        pci=re.findall('pci@.*?(\d+:\d+:\d+\.\d).*?network',line)
        devName=re.findall('pci@.*?(e\w+).*?network',line)
     #   print(pci)
      #  print(devName)
        IfNames=dict1.update(dict(zip(devName,pci)))

        print(dict1)

结果返回时这样得

{'eth0': '0000:02:01.0'}
{'eth0': '0000:02:01.0', 'eth1': '0000:02:05.0'}
{'eth0': '0000:02:01.0', 'eth1': '0000:02:05.0', 'eth2': '0000:02:06.0'}


想要得结果就是


{'eth0': '0000:02:01.0', 'eth1': '0000:02:05.0', 'eth2': '0000:02:06.0'}

如何实现哪位专家指导一下。

把 print(dict1)语句回退2个空格,循环语句外面即可。