我试图从文本文件中过滤MAC地址,因为它有许多字段,如MAC、地址、端口等。。我刚刚在下面尝试了一下,但它生成了一个列表输出
其中有空白列表行和起始行
TOTAL
MAC
我想删除它,我用我的第一个代码尝试了一下,我已经注释了这行,但它不起作用。
with open('device', 'r' ) as fopen:
readMac = fopen.read().splitlines()
for line in readMac:
getMAC = line.upper().split()
print getMAC
下面是其生成的代码输出。。
bash-4.1$ ./maclist2.py
['TOTAL', 'ACTIVE', 'ENTRIES', 'FROM', 'ALL', 'PORTS', '=', '312']
['MAC', 'ADDRESS', 'PORT', 'AGE', 'VLAN', 'TYPE']
[]
['0004.5G0B.54DA', '11/40', '0', '174']
['24B6.FGG8.05EC', '10/7', '0', '174']
['MAC', 'ADDRESS', 'PORT', 'AGE', 'VLAN', 'TYPE']
[]
line.startswith
功能和it
bash-4.1$ cat maclist.py
with open('device', 'r' ) as fopen:
for line in fopen.read().splitlines():
if not line.startswith('TOTAL', 'MAC'):
print line.upper()
bash-4.1$ ./maclist.py
Traceback (most recent call last):
File "./maclist.py", line 5, in <module>
if not line.startswith('TOTAL', 'MAC'):
TypeError: slice indices must be integers or None or have an __index__ method
不过,当我只使用
if not line.startswith('MAC'):
然后删除以
雨衣
但是另一行
空白行仍然存在。
bash-4.1$ ./maclist.py | more
TOTAL ACTIVE ENTRIES FROM ALL PORTS = 312
0004.5G0B.54DA 11/40 0 174
24B6.FGG8.05EC 10/7 0 174
45B6.FUT8.009C 10/7 0 174
文件示例:
bash-4.1$ cat device | more
Total active entries from all ports = 312
MAC Address Port Age VLAN Type
0004.5G0B.54DA 11/40 0 174
24B6.FGG8.05EC 10/7 0 174
MAC Address Port Age VLAN Type
45B6.FUT8.009C 10/7 0 174