MAC、アドレス、ポートなどの多くの機能を持っているので、テキストファイルからMACアドレスをフィルタリングしようとしています。以下のようになりますが、LISTの出力は です。空白のリスト行と行があります。TOTAL
& MAC
削除したい最初のコードで試してみましたが、以下python MACとTOTALの行開始を削除して最初の値またはインデックスを表示する0
#!/usr/bin/env python
with open('device', 'r') as fopen:
readMac = fopen.read().splitlines()
for line in readMac:
getMAC = line.upper().split()
#if getMAC[0] not in ('TOTAL', 'MAC'):
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']
[]
iはエラーを返し
line.startswith
関数と、それにしようとした別のコードでありますbash-4.1$ cat maclist.py #!/usr/bin/env python 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'):
だけを使用している場合は、MAC
で始まる行が削除されますが、別の行にはTOTAL
があり、空白行が残ります。
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
:私はコードわずか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
ファイルのサンプルを変更すると、それを実行したときに
以下が出力されます
はあなたが解析しようとしているファイルからサンプルを共有することはできますか? – Kyle
@Kyle ..確かに私は – rockypy17
@Kyle ..ちょうどファイルサンプル – rockypy17