在python中左右对齐?

时间:2012-03-09 19:53:19

标签: python

我已经看到了一个关于证明“打印”权利的问题,但是我可以在同一行上左右同时显示文本 - 对于--help?在终端看起来像这样:

|                                                     |
|Left                                            Right|
|                                                     |

2 个答案:

答案 0 :(得分:4)

我认为您可以使用sys.stdout

import sys

def stdout(message):
    sys.stdout.write(message)
    sys.stdout.write('\b' * len(message))   # \b: non-deleting backspace

def demo():
    stdout('Right'.rjust(50))
    stdout('Left')
    sys.stdout.flush()
    print()

demo()

您可以使用确切的控制台宽度替换50,您可以从https://stackoverflow.com/a/943921/711085获取

答案 1 :(得分:3)

这是一个非常简单的方法:

>>> left, right = 'Left', 'Right'
>>> print '|{}{}{}|'.format(left, ' '*(50-len(left+right)), right)
|Left                                         Right|

作为一项功能:

def lr_justify(left, right, width):
    return '{}{}{}'.format(left, ' '*(width-len(left+right)), right)

>>> lr_justify('Left', '', 50)
'Left                                              '
>>> lr_justify('', 'Right', 50)
'                                             Right'
>>> lr_justify('Left', 'Right', 50)
'Left                                         Right'
>>> lr_justify('', '', 50)
'                                                  '