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

使用print命令在表中优化Python输出,python,linux,scripting,formatting,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 | 176

在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
一种方法是使用字符串格式。根据您的样本,可以是这样的:

for i in data:
    params = [i[2], i[12], i[9], i[24].split('@')[-1]]
    print '{:20s} | {:10s} | {:20s} | {:16s}'.format(*params)
正如@twalberg所评论的那样,您可以阅读更多内容