-4

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

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

示例 2:转换(25, 100, 1234567890)8用零填充的字符固定宽度字符串的数字版本。
结果:("00000025", "00000100" "34567890") <-注意前 2 个字符是如何丢弃的

可接受的答案还可能包括称我为白痴并告诉我固定宽度的字符串处理有些简单。这也应该在 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.
4

1 回答 1

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     '
于 2012-12-31T16:23:46.707 回答