在 Python 中,如何使用高级格式使长字符串“Foo Bar”变为“Foo ...”,并且不更改像“Foo”这样的短字符串?
"{0:.<-10s}".format("Foo Bar")
只是用点填充字符串
您需要为此使用单独的功能;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...'
您可以配置需要多少个点以及多少个字符。我在 3 个字符后分配 10 个点
text = "Foo Bar"
dots = "." * 10
output = text[0:3] + dots
print output
输出是:
Foo..........