使用print命令在表中输出Python输出

时间:2015-04-24 15:33:16

标签: python linux scripting formatting

在Python脚本中,我正在读取命令输出并将它们放在循环中以提取特定列,我正在尝试格式化输出,因此它看起来很好但是如果结果中的字符更多,那么它就会变得混乱。我怎么让他们好看?

for i in data:
            print i[2], '|', i[12], '\t|', i[9], '\t\t\t|', i[24].split('@')[-1]

输出:

[root@tux work]# ./foo.py
2015-04-24 10:26:44 | RINGING   | 17654742161                   |
2015-04-24 10:26:44 | RINGING   | 00100017654742161                     |
2015-04-24 10:13:52 | ACTIVE    | 18146252950                   | 72.xx.xx.120
2015-04-24 10:24:25 | ACTIVE    | 17323576331                   | 72.xx.xx.120

我想要像以下一样把

[root@tux work]# ./foo.py
    2015-04-24 10:26:44 | RINGING   | 17654742161                   |
    2015-04-24 10:26:44 | RINGING   | 00100017654742161             |
    2015-04-24 10:13:52 | ACTIVE    | 18146252950                   | 72.xx.xx.120
    2015-04-24 10:24:25 | ACTIVE    | 17323576331                   | 72.xx.xx.120

1 个答案:

答案 0 :(得分:0)

一种方法是使用字符串格式。根据您的样本,可以是这样的:

for i in data:
    params = [i[2], i[12], i[9], i[24].split('@')[-1]]
    print '{:20s} | {:10s} | {:20s} | {:16s}'.format(*params)

正如@twalberg所评论,您可以阅读更多here