如何使用 Python 在 shell 中右对齐段落?
我正在开发一个交互式 shell,用户可以在其中输入一些文本,并以看起来像对话的方式返回文本。在 Android 和 iPhone 上最新的 SMS UI 上,您可以看到您编写的文本左对齐,您收到的文本右对齐。
这是我想要实现的效果,但是在 Linux shell 中(没有花哨的图形,只有输入和输出的流程)。
我很了解 format()
和 rjust()
方法,但它们需要知道您想要填充值的字符数,而我不知道不知道当前外壳的宽度。
我可以安装或使用的库不受限制,我主要针对 Linux 平台,认为拥有跨平台的东西总是好的。
I'm working on an interactive shell where the user is entering some text, and get text back in a way that looks like a conversation. On recent SMS UIs on androids and iphones, you can see text aligned to the left for the text you wrote, and text aligned to the right for the text you received.
This is the effect I want to achieve, but in a Linux shell (without fancy graphics, just the flow of inputs and outputs).
I'm well aware of the format()
and rjust()
methods but they require to know the number of characters your want to pad the value with, and I don't know the width of the current shell.
I'm not limited in the lib I can install or use and I'm mainly aiming the Linux platform, thought having something cross platform is always nice.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用curses。
使用 window.getmaxyx() 获取终端大小。
另一种选择:
Use curses.
Use
window.getmaxyx()
to get the terminal size.Another alternative:
正如已经指出的,使用诅咒。对于简单的情况,如果您不想使用诅咒,可以使用
COLUMNS
环境变量 (更多信息)。As already noted, use curses. For simple cases, if you don't want to use curses, you may use
COLUMNS
environment variable (more here).如果多行输出需要右对齐,则组合使用:
类似:
If multiple lines of output need to be right justified, then a combination of:
Something like: