python在linux终端显示图形_Linux终端显示和Python

我正在编写Python脚本以打印出可显示的用户界面。问题是每个Linux用户都有自己独特的终端大小。这将导致硬编码的用户界面过时。

(如果下面有很多示例,则终端看起来很疯狂!!)。

示例,在脚本中。我已经打印了:

print"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

格式应该在我的终端上运行良好:

++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++

当终端较小时,打印输出格式将用完。

格式变为:

++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++

所以我在想:

用户运行脚本时,可以自动将Linux终端大小更改为声明的大小吗?

我可以使用Python获取用户终端大小的宽度和长度,以便终端显示灵活

我想听听世界上任何更好的解决方案来解决终端显示问题!

我强烈希望在Python中推荐

您可能想看看这个问题。

这个问题,得到终端的大小。 最推荐什么? (很可能是为了将来的编程目的)获取终端大小还是调整大小?

获取大小。 您无法调整终端的大小。 (嗯,也许是某些类型,但是即使那样,用户也不会喜欢)

*喜欢* @Petr Viktorin评论

我强烈建议使用类似Python标准库的curses模块来执行此操作。

不要重新发明轮子-使用现有的库既可以帮助您避免遇到极端情况,也可以节省时间。 另外,curses界面是* nix用户熟悉的界面,它将使他们更喜欢您。

嗯..有趣! 那么API会自动更改终端大小还是获得终端大小?

curses旨在与用户现有终端大小无关。 (大多数人不喜欢您强迫他们调整终端的大小,有些终端甚至不允许您调整他们的大小。)

对,对! 某些终端无法调整大小!

诅咒在Windows命令提示符中也起作用吗?

可悲的是,没有(至少默认情况下)。 如手册页顶部所述,其"平台:Unix"。

啧! 以为我可以用石头杀死两只鸟! = P

感谢您的推荐@Amber。 我会测试一下!^ _ ^

正如Amber建议的那样,您应该使用类似curses的库。

尽管如此,您仍然可以使用以下方式获取终端的宽度:

import subprocess

int(subprocess.Popen(['tput', 'cols'], stdout=subprocess.PIPE).stdout.read())

凉! 我会试试!

基于Amber解决方案中的评论,人们希望看到一种同样适用于Windows的解决方案。 一个简单的跨平台解决方案是使用asciimatics。 例如:

from asciimatics.screen import Screen

def demo(screen):

screen.print_at('+' * screen.width, 0, 0)

screen.refresh()

sleep(10)

Screen.wrapper(demo)

该软件包还提供了更高级别的小部件的全部负载,以简化全屏文本UI。 有关示例,请参见联系人列表演示。

完全公开:是的-我是该软件包的作者,因此可能会有些偏颇。:-)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值