python如何使用pprint或其他模块对齐数据

时间:2012-08-31 09:48:09

标签: python pprint

我有一个实时显示数据的python脚本(每秒)。我想对齐这些。我尝试使用pprint模块,但它不起作用。

示例:我的脚本显示:

Server1 Sessions / s ----------------------- Server2 Sessions / s

    64                                20
    0                                20
    64                                20
    64                                20
    64                                20
    0                                19
    128                                19
    0                                19
    256                                19
    192                                19

是否可以获得此结果?

Server1 Sessions / s ---------------------- Server2 Sessions / s

    64                               20
    0                                20
    64                               20
    64                               20
    64                               20
    0                                19
    128                              19
    0                                19
    256                              19
    192                              19

每秒都会打印一个值。我没有列出所有这些或字典。

我要显示的代码:

print("Server1 Sessions/s-----------------Server2 Sessions/s")
while i < self.timer:
    print("        " + str(self.serverrqs()*int(self.nbpro)) + "                                "+ str(self.servernbrqs()))
    i += 1
    sleep(1)

提前致谢

4 个答案:

答案 0 :(得分:1)

您可以使用字符串格式:

>>> '%40s' % 'ab'
'                                      ab'

答案 1 :(得分:1)

它应该是格式字符串

中由' - '指定的左对齐方式
print('        %-40s%s' % (self.serverrqs()*int(self.nbpro), self.servernbrqs()))

答案 2 :(得分:1)

您可以按摩以下内容以适应:

from random import randint

for line in range(4):
    value1, value2 = randint(0, 16)*16, randint(19,20)
    print("    %-4i        %-4i" % (value1, value2))

其输出如下:

    144           20
    0             20
    96            20
    128           19

Google for:Python字符串插值,了解更多信息。

答案 3 :(得分:0)

使用新式(&gt; = 2.7)formatting

def format_row(leftval, rightval, width=30, fill=u' '):
    """"""
    row = u'        {0}{1:{fill}>{width}}'
    width = width - len(unicode(leftval))
    return row.format(leftval, rightval, fill=fill, width=width)

print format_row(1, 20)
print format_row(100, 20)
print format_row(100, 200)