2012-08-31 48 views
0

我有一個實時顯示數據的python腳本(每秒)。我想調整這些。我已經嘗試使用pprint模塊,但它不起作用。python如何將數據與pprint或其他模塊對齊

示例:我的腳本顯示這一點:

Server1的會話/秒-----------------------服務器2的會話/秒

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

可以有這個結果嗎?

Server1的會話/秒----------------------服務器2的會話/秒

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) 

在此先感謝

回答

1

這應是由指定的左對齊 ' - '在格式字符串中

print('  %-40s%s' % (self.serverrqs()*int(self.nbpro), self.servernbrqs())) 
+0

完美!簡單,它的作品。非常感謝 :) – Matt

1

你可以使用字符串格式化:

>>> '%40s' % 'ab' 
'          ab' 
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 

谷歌爲:Python字符串插,以獲得更多信息。

0

有了新的風格(> = 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) 
相關問題