在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中左右对齐?的主要内容,如果未能解决你的问题,请参考以下文章
当第一个 Grid 项目是固定宽度时,如何在 Material UI 中左右对齐两个 Grid 项目?