使用正则表达式处理日志文件:组合正则表达式

时间:2015-07-18 05:12:16

标签: python regex

我有一个包含字符串output的文件,如下面的代码所示。 我想提取数据:

如何使用正则表达式实现此目的?我可以将我使用的两个正则表达式合并为一个吗?

我还需要忽略"dropped"字符串

port: dropped-packets
s1-eth1: 21
s1-eth2: 12
...

processQdisc.py

output = '''
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 47002846 bytes 549464 pkt (dropped 0, overlimits 0 requeues 1) 
 backlog 0b 0p requeues 1 
qdisc htb 5: dev s2-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 25845 bytes 186 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 24941 bytes 182 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 24043 bytes 177 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 25506 bytes 183 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 25173 bytes 182 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 26996 bytes 197 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 26793 bytes 197 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28350 bytes 206 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 26856 bytes 195 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 27651 bytes 199 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28908 bytes 208 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28654 bytes 205 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28494 bytes 203 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 27723 bytes 198 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28996 bytes 206 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth7 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28586 bytes 201 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth8 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28494 bytes 203 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth9 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28836 bytes 204 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth10 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28334 bytes 201 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth11 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28654 bytes 205 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28586 bytes 201 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28404 bytes 202 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28334 bytes 201 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28154 bytes 199 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28244 bytes 200 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 4149 bytes 29 pkt (dropped 3, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc netem 10: dev s2-eth1 parent 5:1 limit 1000 loss 10%
 Sent 4149 bytes 29 pkt (dropped 3, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 21723 bytes 160 pkt (dropped 21, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc netem 10: dev s1-eth1 parent 5:1 limit 1000 loss 10%
 Sent 21723 bytes 160 pkt (dropped 21, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 4942 bytes 36 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 23646 bytes 173 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 6025 bytes 52 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 23018 bytes 160 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s5-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 4002 bytes 24 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 24586 bytes 185 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 5587 bytes 43 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 23720 bytes 169 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
'''

我的代码:

import re
searchObj = re.findall( r's\d-eth\d', output, re.M|re.I)
searchObj2 = re.findall( r'dropped \d*', output, re.M|re.I)

print searchObj
print searchObj2

我得到的输出:

['s2-eth2', 's2-eth3', 's2-eth4', 's2-eth5', 's2-eth6', 's3-eth2', 's3-eth3', 's3-eth4', 's3-eth5', 's3-eth6', 's4-eth2', 's4-eth3', 's4-eth4', 's4-eth5', 's4-eth6', 's4-eth7', 's4-eth8', 's4-eth9', 's4-eth1', 's4-eth1', 's6-eth2', 's6-eth3', 's6-eth4', 's6-eth5', 's6-eth6', 's2-eth1', 's2-eth1', 's1-eth1', 's1-eth1', 's3-eth1', 's1-eth2', 's4-eth1', 's1-eth3', 's5-eth1', 's1-eth4', 's6-eth1', 's1-eth5']
['dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 3', 'dropped 3', 'dropped 21', 'dropped 21', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0', 'dropped 0']

2 个答案:

答案 0 :(得分:1)

您可以在正则表达式之间使用逻辑OR:

>>> re.findall( r's\d-eth\d|dropped \d*', output, re.M|re.I)
['dropped 0', 'dropped 0', 's2-eth2', 'dropped 0', 's2-eth3', 'dropped 0', 's2-eth4', 'dropped 0', 's2-eth5', 'dropped 0', 's2-eth6', 'dropped 0', 's3-eth2', 'dropped 0', 's3-eth3', 'dropped 0', 's3-eth4', 'dropped 0', 's3-eth5', 'dropped 0', 's3-eth6', 'dropped 0', 's4-eth2', 'dropped 0', 's4-eth3', 'dropped 0', 's4-eth4', 'dropped 0', 's4-eth5', 'dropped 0', 's4-eth6', 'dropped 0', 's4-eth7', 'dropped 0', 's4-eth8', 'dropped 0', 's4-eth9', 'dropped 0', 's4-eth1', 'dropped 0', 's4-eth1', 'dropped 0', 's6-eth2', 'dropped 0', 's6-eth3', 'dropped 0', 's6-eth4', 'dropped 0', 's6-eth5', 'dropped 0', 's6-eth6', 'dropped 0', 's2-eth1', 'dropped 3', 's2-eth1', 'dropped 3', 's1-eth1', 'dropped 21', 's1-eth1', 'dropped 21', 's3-eth1', 'dropped 0', 's1-eth2', 'dropped 0', 's4-eth1', 'dropped 0', 's1-eth3', 'dropped 0', 's5-eth1', 'dropped 0', 's1-eth4', 'dropped 0', 's6-eth1', 'dropped 0', 's1-eth5', 'dropped 0']

如果您不想在结果中使用dropped字词,那么您可以在正则表达式中使用正面外观:

>>> re.findall( r's\d-eth\d|(?<=dropped) ?\d*|eth\d', output, re.M|re.I)
['eth0', ' 0', 'eth1', ' 0', 's2-eth2', ' 0', 's2-eth3', ' 0', 's2-eth4', ' 0', 's2-eth5', ' 0', 's2-eth6', ' 0', 's3-eth2', ' 0', 's3-eth3', ' 0', 's3-eth4', ' 0', 's3-eth5', ' 0', 's3-eth6', ' 0', 's4-eth2', ' 0', 's4-eth3', ' 0', 's4-eth4', ' 0', 's4-eth5', ' 0', 's4-eth6', ' 0', 's4-eth7', ' 0', 's4-eth8', ' 0', 's4-eth9', ' 0', 's4-eth1', ' 0', 's4-eth1', ' 0', 's6-eth2', ' 0', 's6-eth3', ' 0', 's6-eth4', ' 0', 's6-eth5', ' 0', 's6-eth6', ' 0', 's2-eth1', ' 3', 's2-eth1', ' 3', 's1-eth1', ' 21', 's1-eth1', ' 21', 's3-eth1', ' 0', 's1-eth2', ' 0', 's4-eth1', ' 0', 's1-eth3', ' 0', 's5-eth1', ' 0', 's1-eth4', ' 0', 's6-eth1', ' 0', 's1-eth5', ' 0']
>>> 

答案 1 :(得分:0)

组合列表可以是一个选项

#processQdisc.py
import re

output = '''
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 47002846 bytes 549464 pkt (dropped 0, overlimits 0 requeues 1) 
 backlog 0b 0p requeues 1 
qdisc htb 5: dev s2-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 25845 bytes 186 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 24941 bytes 182 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 24043 bytes 177 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 25506 bytes 183 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 25173 bytes 182 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 26996 bytes 197 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 26793 bytes 197 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28350 bytes 206 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 26856 bytes 195 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 27651 bytes 199 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28908 bytes 208 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28654 bytes 205 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28494 bytes 203 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 27723 bytes 198 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28996 bytes 206 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth7 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28586 bytes 201 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth8 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28494 bytes 203 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth9 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28836 bytes 204 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth10 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28334 bytes 201 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth11 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28654 bytes 205 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28586 bytes 201 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28404 bytes 202 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28334 bytes 201 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28154 bytes 199 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth6 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 28244 bytes 200 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s2-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 4149 bytes 29 pkt (dropped 3, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc netem 10: dev s2-eth1 parent 5:1 limit 1000 loss 10%
 Sent 4149 bytes 29 pkt (dropped 3, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 21723 bytes 160 pkt (dropped 21, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc netem 10: dev s1-eth1 parent 5:1 limit 1000 loss 10%
 Sent 21723 bytes 160 pkt (dropped 21, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s3-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 4942 bytes 36 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth2 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 23646 bytes 173 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s4-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 6025 bytes 52 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth3 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 23018 bytes 160 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s5-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 4002 bytes 24 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth4 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 24586 bytes 185 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s6-eth1 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 5587 bytes 43 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc htb 5: dev s1-eth5 root refcnt 2 r2q 10 default 1 direct_packets_stat 0 direct_qlen 1000
 Sent 23720 bytes 169 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 

'''
searchObj = re.findall( r's\d-eth\d', output, re.M|re.I)
searchObj2 = re.findall( r'dropped \d*', output, re.M|re.I)

# print searchObj
# print searchObj2
print {i:j for i in searchObj for j in searchObj2}

输出:

{'s1-eth2': 'dropped 0', 's4-eth2': 'dropped 0', 's4-eth3': 'dropped 0', 's4-eth1': 'dropped 0', 's4-eth6': 'dropped 0', 's4-eth7': 'dropped 0', 's4-eth4': 'dropped 0', 's4-eth5': 'dropped 0', 's4-eth8': 'dropped 0', 's4-eth9': 'dropped 0', 's1-eth5': 'dropped 0', 's1-eth4': 'dropped 0', 's5-eth1': 'dropped 0', 's1-eth1': 'dropped 0', 's1-eth3': 'dropped 0', 's3-eth6': 'dropped 0', 's3-eth5': 'dropped 0', 's3-eth4': 'dropped 0', 's3-eth3': 'dropped 0', 's3-eth2': 'dropped 0', 's3-eth1': 'dropped 0', 's2-eth1': 'dropped 0', 's2-eth2': 'dropped 0', 's2-eth3': 'dropped 0', 's2-eth4': 'dropped 0', 's2-eth5': 'dropped 0', 's2-eth6': 'dropped 0', 's6-eth4': 'dropped 0', 's6-eth5': 'dropped 0', 's6-eth6': 'dropped 0', 's6-eth1': 'dropped 0', 's6-eth2': 'dropped 0', 's6-eth3': 'dropped 0'}