在Python中,如何通过使用高级格式化使长字符串“Foo Bar”成为“Foo ...” 并且不要像“Foo”那样改变短字符串?
"{0:.<-10s}".format("Foo Bar")
只是用点填充字符串
答案 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..........