在Python中格式化字符串

时间:2016-03-21 22:29:45

标签: python string format

我在python中打印标题,我希望它在屏幕的中心。 我知道我可以使用

来做到这一点
"{:^50}".format("Title")

但是这个命令的用处是它只使用我给出的宽度(在这种情况下,50)。但它并不完美,有时会偏离。即使我通过观察/猜测来近似宽度,如果我重新调整终端的大小,它也会超出格式。我总是希望将它对齐在屏幕中间,即使终端重新调整大小(例如,在全屏模式下)。我能以任何方式实现这一目标吗?

修改 我这样做了:     好吧,我找到了找到窗口大小的方法,

import os
columns = os.popen('stty size', 'r').read().split()[0]
"{:^"+columns+"}".format("Title")

但最后一行显示错误。我终于有窗口大小,但我无法正确格式化。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

正如zondo指出的那样,当调整窗口大小时,标题不会重新定位。

正确的方法:"{:^"+columns+"}".format("Title")就是这样:

"{:^{}}".format("Title", width)
#^---------------^ first argument goes with first brace
#   ^--------------------^ second argument goes with second brace and sets the width