如何解决如何使用Python在外壳中右对齐段落?
| 我正在使用一个交互式外壳,用户在其中输入一些文本,并以类似于对话的方式获取文本。在android和iphone上的最新SMS UI上,您可以看到您编写的文本的左侧对齐文本,以及您收到的文本的右侧对齐文本。 这是我想要实现的效果,但是在Linux shell中(没有精美的图形,只有输入和输出流)。 我很了解format()
和rjust()
方法,但是它们需要知道您想要用其填充值的字符数,而且我也不知道当前shell的宽度。
我不受我可以安装或使用的库的限制,我主要针对Linux平台,以为跨平台的东西总是很好。
解决方法
使用诅咒。
使用
window.getmaxyx()
获取端子尺寸。
另一种选择:
import os
rows,cols = os.popen(\'stty size\',\'r\').read().split()
,如前所述,使用诅咒。对于简单的情况,如果您不想使用curses,则可以使用COLUMNS
环境变量(更多信息请参见此处)。
,如果需要正确调整多行输出,请结合以下各项:
获取窗口宽度:如何在Python中获取Linux控制台窗口宽度
textwrap.wrap
使用正义
就像是:
import textwrap
screen_width = <width of screen>
txt = <text to right justify>
# Right-justifies a single line
f = lambda x : x.rjust(screen_width)
# wrap returns a list of strings of max length \'screen_width\'
# \'map\' then applies \'f\' to each to right-justify them.
# \'\\n\'.join() then combines them into a single string with newlines.
print \'\\n\'.join(map(f,textwrap.wrap(txt,screen_width)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。