Python .format切片长字符串并添加点

时间:2013-03-15 10:15:53

标签: python string

在Python中,如何通过使用高级格式化使长字符串“Foo Bar”成为“Foo ...” 并且不要像“Foo”那样改变短字符串?

"{0:.<-10s}".format("Foo Bar") 

只是用点填充字符串

2 个答案:

答案 0 :(得分:7)

你需要使用一个单独的功能; Python格式的迷你语言不支持截断:

def truncate(string, width):
    if len(string) > width:
        string = string[:width-3] + '...'
    return string

"{0:<10s}".format(truncate("Foo Bar Baz", 10))

输出:

>>> "{0:<10s}".format(truncate("Foo", 10))
'Foo       '
>>> "{0:<10s}".format(truncate("Foo Bar Baz", 10))
'Foo Bar...'

答案 1 :(得分:-1)

您可以配置所需的点数以及经过多少个字符数。我在3个字符后分配10个点

text = "Foo Bar"
dots = "." * 10
output = text[0:3] + dots
print output

输出结果为:

Foo..........