2013-04-30 36 views
1

反正有沒有在python中做this如何順利對齊文本輸出

我有一堆未對齊文本,它essntially看起來像這樣(從上面鏈接的問題複製):

column1    column2 
-------    ------- 
sdfsdfsddfsdfsdfsdfsd   343r5 
dfgdfgdf    234 
gdfgdfgdfgdfgf   645 

而且我想它看起來就像這樣:

Name       Address  Size 
foo      
bar       9abcdef0  1024 
something-with-a-longer-name 0000abcd  2048 

但我不知道/無法在python中找到任何類似的文本和字符串修飾符。

+1

如果替代''%字符串操作符'printf'的C解決方案將正常工作。 – 2013-04-30 17:18:31

+0

@MarkRansom所以你的意思就像'print(「%8s」....)'? – yiwei 2013-04-30 17:20:37

+1

C的printf(「% - 30s%08x%8d \ n」,names [i],addresses [i],sizes [i])的Python 3.x相當於'print(「% - 30s%08x %8d「%(名稱[i],地址[i],大小[i]))'' – Aya 2013-04-30 17:26:45

回答

3

在python 3(2.6+)中,應該使用str.format()而不是「%-systax」。

format_str = '{name:30} {address:08x} {size:8d}' 
print(format_str.format(name='Name', address='Address', size='Size') 
print(format_str.format(name=names[i], address=addresses[i], size=sizes[i])) 

有關format()方法的更多相關信息看here