zoukankan      html  css  js  c++  java
  • 通过 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 ""
  • 相关阅读:
    Linux基础命令(一)
    You've made choice
    protege推理
    字符编码
    第二次作业
    数据类型-集合set
    数据类型-元组&字典
    数据类型-列表
    数据类型-数值&字符串
    流程控制之for循环
  • 原文地址:https://www.cnblogs.com/yeyong/p/6598284.html
Copyright © 2011-2022 走看看