CSV到Python,文本对齐
问题描述:
所以我有一个CSV文件,它有三列。我可以读取CSV文件,表格的每一行都是一个列表。但是,当我尝试将它们打印为一张表格时,由于文本的长度不同,所以它们没有正确对齐。我相信我必须用%来格式化它们,但我不知道如何使它工作。 我有更多的行,但由于显而易见的原因,我会只显示第3CSV到Python,文本对齐
North America USA Washington
Europe Republic of Ireland Dublin
Asia China Beijing
This is how my lists look like:
["North America"," USA", "Washington"]
["Europe"," Republic of Ireland", "Dublin"]
["Asia"," China", "Beijing"]
弄成这个样子:
North America USA Washington
Europe Republic of Ireland Dublin
Asia China Beijing
我不想使用prettyprint或similiar库,因为我相信这个问题的解决方案对我更有利,所以我可以理解事情的工作方式。
答
使用
使用
使用ljust()
可以使用ljust()
功能(串)。
ljust
将从右侧填充空格(如果指定了任何其他字符)。
用法示例:
>>> 'hello'.ljust(10)
'hello '
>>> 'hello'.ljust(10, 'A')
'helloAAAAA'
所以,当你打印值,只是垫他们使用ljust
假设有a
- 列出一个清单,其中包含你的价值观:
for b in a:
for c in b:
print c.ljust(15),
print ""
使用format
你可以使用字符串format
功能用于这一目的:
>>> '{:10}'.format('hello')
'hello '
标准格式说明符的一般格式为:
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= integer
precision ::= integer
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
另一种方法是使用字符串format
:
>>> '{text: <10}'.format(text='hi')
'hi '
使用slicing
那么,它可能被认为是更优雅或Python化(??)使用该方法,但我不亲自喜欢它(?):
>>> ('hello' + 10 * ' ')[:10]
'hello '
使用打印格式
你可以打印时使用百分比符号,用于格式化C风格的printf文件...
没关系,这不是一个好主意。去别的地方看看吧!
[我怎样才能用空格填充Python字符串?](http:// stackoverflow。com/questions/5676646/how-can-i-fill-a-python-string-with-spaces) – mattsap
使用python中的标签“\ t” – Maddy
@Mani Tab由于长度不同会不起作用 –