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

Zhu*_*o.M 4 python string

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

"{0:.<-10s}".format("Foo Bar") 
Run Code Online (Sandbox Code Playgroud)

只是用点填充字符串

Mar*_*ers 7

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

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

"{0:<10s}".format(truncate("Foo Bar Baz", 10))
Run Code Online (Sandbox Code Playgroud)

哪个输出:

>>> "{0:<10s}".format(truncate("Foo", 10))
'Foo       '
>>> "{0:<10s}".format(truncate("Foo Bar Baz", 10))
'Foo Bar...'
Run Code Online (Sandbox Code Playgroud)