填充和切​​片以获得固定长度字符串的简单方法

时间:2012-12-31 16:15:19

标签: python string python-3.x python-2.7

我正在寻找一个可以创建固定宽度的certian填充和对齐字符串的函数(希望内置)。在我的情况下,我有一个名称列表(以及其他数据)需要放入固定的格式文件。

示例1:"Spams spam and spam""viking inc"都需要放入15个字符的固定宽度字段。
结果:("Spams spam and ", "viking inc ")

示例2:将(25, 100, 1234567890)转换为用零填充的8字符固定宽度字符串的数字版本。
结果:("00000025", "00000100" "34567890")< - 注意前两个字符的删除方式

可接受的答案还可能包括称我为白痴并告诉我固定宽度字符串处理有一些简单的事情。理想情况下,这应该在python 2.7和3.3中工作(我们公司目前在2.7,但很快将转向3.3)

我尝试了什么:

"{0:<30}".format("viking inc")  #works
"{0:<30}".format("Spams spam and spam") #does not work, output it too long.

1 个答案:

答案 0 :(得分:2)

对于数字:

>>> for n in (25, 100, 1234567890):
        print('{:0>8}'.format(n)[-8:])

00000025
00000100
34567890

对于字符串,你的例子有点模糊。如果你只想选择前15个字符(最多),那么就这样做:

>>> 'Spams spam and spam'[:15]
'Spams spam and '
>>> 'viking inc'[:15]
'viking inc'

如果您想再次填充它 - 您在示例中没有 - 那么您可以再次使用格式:

>>> '{:<15}'.format('Spams spam and spam'[:15])
'Spams spam and '
>>> '{:<15}'.format('viking inc'[:15])
'viking inc     '