5

在 Python 中,如何使用高级格式使长字符串“Foo Bar”变为“Foo ...”,并且不更改像“Foo”这样的短字符串?

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

只是用点填充字符串

4

2 回答 2

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...'
于 2013-03-15T10:20:37.907 回答
-1

您可以配置需要多少个点以及多少个字符。我在 3 个字符后分配 10 个点

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

输出是:

Foo..........
于 2015-05-08T04:07:22.487 回答