从d列表打印表格

2024-09-29 21:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在列表中有一些数据。我试着在一个有格式的表中均匀地打印出来,但是不同的长度确实会使它失效。有什么方法可以简单地做到这一点吗?或者我必须做一些尴尬的事情,比如计算每一列的最大值,用空格填充其他列?你知道吗

 table_data = [['vlan1', '0013.F200.0058', '192.168.2.2'],
               ['vlan20', '0013.F200.0058', '192.168.30.2'],
               ['vlan20', '0010.600a.7026', '192.168.30.4'], 
               ['vlan20', '70ca.9b99.6a82', '192.168.30.1'],
               ['vlan100', '0013.F200.0058', '192.168.110.2']]   


for i in table_data:
    interface,mac,ip = i
    print "Internet  {} {:>18s} {:>7s} {:>8s}".format(ip, mac,'ARPA' ,interface)    


Protocol  Address             Hardware Addr   Type   Interface                  
Internet  192.168.2.2     0013.F200.0058    ARPA     vlan1                       
Internet  192.168.30.2     0013.F200.0058    ARPA    vlan20                      
Internet  192.168.30.4     0010.600a.7026    ARPA    vlan20                      
Internet  192.168.30.1     70ca.9b99.6a82    ARPA    vlan20                      
Internet  192.168.110.2     0013.F200.0058    ARPA   vlan100  

Tags: 数据方法ip列表datamac格式table
3条回答

只是摆弄补偿给我这个:

print "Internet {:>16}{:>16}{:>8}{:>10}".format(ip, mac, 'ARPA' ,interface)

输出:

Internet      192.168.2.2  0013.F200.0058    ARPA     vlan1
Internet    192.168.110.2  0013.F200.0058    ARPA   vlan100
Internet     192.168.30.2  0013.F200.0058    ARPA    vlan50
Internet     192.168.30.4  0010.600a.7026    ARPA    vlan20
Internet     192.168.30.1  70ca.9b99.6a82    ARPA     vlan2

我认为使用表格('\t')应该可以做到这一点。你知道吗

print "Internet\t{}\t{:>18s}\t{:>7s}\t{:>8s}".format(ip, mac,'ARPA' ,interface)

我通过终端测试了它,它似乎工作,调整它的权利。你知道吗

table_data = [['vlan1',   '0013.F200.0058', '192.168.2.2'],
               ['vlan20', '0013.F200.0058', '192.168.30.2'],
               ['vlan20', '0010.600a.7026', '192.168.30.4'], 
               ['vlan20', '70ca.9b99.6a82', '192.168.30.1'],
               ['vlan100','0013.F200.0058', '192.168.110.2']]   

print "Protocol  Address          Hardware Addr   Type   Interface  "
for i in table_data:
    interface,mac,ip = i
    print "Internet  {:15} {:>15} {:^7s} {}".format(ip, mac,'ARPA' ,interface) 

输出:

Protocol  Address          Hardware Addr   Type   Interface  
Internet  192.168.2.2      0013.F200.0058  ARPA   vlan1
Internet  192.168.30.2     0013.F200.0058  ARPA   vlan20
Internet  192.168.30.4     0010.600a.7026  ARPA   vlan20
Internet  192.168.30.1     70ca.9b99.6a82  ARPA   vlan20
Internet  192.168.110.2    0013.F200.0058  ARPA   vlan100

相关问题 更多 >

    热门问题