• 通过 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 ""
  • 相关阅读:
    定时机制
    选择排序
    二分插入排序
    无名管道pipe
    Makefile
    Python下划线与命名规范
    Django IDE 开发环境的搭建
    Apache如何添加虚拟目录
    在Eclipse下如何安装插件
    Python的模块、包等概念的理解
  • 原文地址:https://www.cnblogs.com/yeyong/p/6598284.html
Copyright © 2020-2023  润新知