在python中左右对齐?

Posted

技术标签:

【中文标题】在python中左右对齐?【英文标题】:Allign left and right in python? 【发布时间】:2012-03-27 06:16:04 【问题描述】:

我看到了一个关于证明“打印”正确的问题,但是我可以在同一行左右放置文本以获取 --help 吗?它在终端中看起来像这样:

|                                                     |
|Left                                            Right|
|                                                     |

【问题讨论】:

您是否将 ArgParse 用于命令行解析器? 对于右对齐,您首先需要知道您的总输出空间有多大。你呢? 【参考方案1】:

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

>>> 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)
'                                                  '

【讨论】:

【参考方案2】:

我认为您可以为此使用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://***.com/a/943921/711085 获得该宽度

【讨论】:

你不能使用print message,(注意尾随逗号)吗? 漂亮。我已经对其进行了评论,并对其进行了编辑,因此它可以在交互式 python 提示符以及 python2 和 python3 中运行。将50 替换为您从***.com/a/943921/711085 获得的值以获得准确度。 @andrewcooke: \b "rewinds: 光标到行首,所以当我打印出Left时,我实际上覆盖了行。你可以使用print,不过。@FJ 做到了。 对,但没必要乱用 sys.stdout,你仍然可以使用惯用的 python print(没有什么特别的需要 sys.stdout 的 \b)。

以上是关于在python中左右对齐?的主要内容,如果未能解决你的问题,请参考以下文章

Android Layout在水平布局中左右对齐

在 mat-card-title 中左右对齐

如何在引导程序中左右对齐导航栏的列表项

当第一个 Grid 项目是固定宽度时,如何在 Material UI 中左右对齐两个 Grid 项目?

通过 Python 中的 HTML 格式在 Graphviz 节点中左对齐

Bootstrap中的div内左对齐和右对齐