通过 format 来大量输出字符变量,并排版

 1 def get_protocol_info_from_pcap(pcapfile):
 2     pcap = PcapFile(pcapfile)
 3     start = time.time()
 4     pkts = {}
 5     for p in pcap.tcp_udp_packets():
 6         l3 = p.L3_protocol
 7         if pkts.has_key(l3):
 8             l3pkts = pkts[l3]
 9             l3pkts.append(p.length)
10             pkts[l3] = l3pkts
11         else:
12             pkts[l3] = [p.length]
13     total = 0
14     pcap.close()
15     formatstr = "{0[0]:>12}{0[1]:>11}{0[2]:>15}{0[3]:>8}{0[4]:>15}{0[5]:>10}{0[6]:>15}"
16     total_p = 0
17     total_b = 0
18     for i, j in pkts.items():
19         total_b += sum(j)
20         total_p += j.__len__()
21 
22     print "-" * 100
23     print pcapfile
24     print ""
25     print formatstr.format(["protocol_num", "protocol", "total_packets", "rate", "total_bytes", "rate", "aver_pkt_len"])
26     for i, j in pkts.items():
27         bytes_percent = "%.1f%%" % (sum(j) * 100.0 / total_b)
28         pkts_percent = "%.1f%%" % (j.__len__() * 100.0 / total_p)
29         print formatstr.format(
30             [i, Protocol.l3_protocols[i], j.__len__(), pkts_percent, sum(j), bytes_percent, sum(j) / j.__len__()])
31     print formatstr.format(["", "Total", total_p, "", total_b, "", total_b / total_p])
32     end = time.time()
33     print ""
34     print "time cost: %s" % (end - start)
35     print "-" * 100
36     print ""

 

转载于:https://www.cnblogs.com/yeyong/p/6598284.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值