CSV到python,文本对齐

2024-06-08 18:51:07 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个CSV文件,它有三列。我可以读取CSV文件,表格的每一行都是一个列表。但是,当我试图像表格一样打印它们时,由于文本长度不同,它们没有正确对齐。我想我必须用%来格式化它们,但我不知道如何使它工作。 我有更多的行,但出于明显的原因,我只显示前3行。在

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"]

像这样:

^{pr2}$

我不想使用prettyprint或类似的库,因为我相信这个问题的解决方案对我更有利,这样我就可以理解事情是如何工作的。在


Tags: 文件ofcsv表格europechinausadublin
1条回答
网友
1楼 · 发布于 2024-06-08 18:51:07

使用^{}

您可以使用^{}函数(对于字符串)。在

ljust将从右侧用空格填充字符串(或任何其他字符,如果指定)。
示例用法:

>>> 'hello'.ljust(10)
'hello     '
>>> 'hello'.ljust(10, 'A')
'helloAAAAA'

所以当您打印这些值时,只需使用ljust填充它们

假设有a-列出一个包含您的值的列表:

^{pr2}$

使用^{}

为此,您可以使用字符串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" | "%"

另一种使用字符串^{}的方法:

>>> '{text: <10}'.format(text='hi')
'hi        '

使用slicing

嗯,它可能会被认为更优雅(?)或者Python(??)但我个人不喜欢这种方法:

>>> ('hello' + 10 * ' ')[:10]
'hello     '

使用打印格式

你可以在打印时使用百分号,用C样式的printf格式化。。。在

别担心,这不是个好主意。去别处看看!

相关问题 更多 >