2017-04-13 45 views
0

我希望能夠打印字符串是這樣的:多行參數Python的.format

text1 v1 text2 v3 
     v2  v4 

其中vi是變量。我嘗試這樣做:

"text1 {} text2 {}".format("v1\nv2", "v3\nv4") 

但是,可以預見,這使輸出

text1 v1 
v2 text2 v3 
v4 

因爲在第一個參數換行到format適用於整條生產線。

有沒有什麼好的方法可以將多行參數傳遞給format,而不會中斷整個格式化的字符串?

+2

有一個庫[只爲此](https://pypi.python.org/pypi/tabulate)。 – dhke

+1

lol nope ....那不是終端的工作方式......你可能想看看控制角色和/或詛咒......雖然這說@dhke的回答可能或多或少地解決你的問題 –

+0

@HansSchwabing,檢查我的答案我想你也一樣。 –

回答

2
pip install tabulate 

漂亮地打印表格數據,庫和一個命令行實用程序 。

from tabulate import tabulate 
table =[["text1", "v1", "text2", "v3"],["", "v2", "", "v4"]] 
print(tabulate(table)) 

「表」是父列表和元素將是表的行進行打印。

1

實際上,你可以做到這一點

In [1]: print "text1 {} text2 {}\n  {}  {}".format("v1", "v3", "v2", "v4") 
text1 v1 text2 v3 
     v2  v4 

OR

In [2]: print "text1\t{}\ttext2\t{}\n\t{}\t{}".format("v1", "v3", "v2", "v4") 
text1 v1 text2 v3 
     v2   v4 

\t意味着選項卡,\n是換行符。

在Python