如何在 Python 中获取 Linux 控制台窗口的宽度

新手上路,请多包涵

python中有没有办法以编程方式确定控制台的宽度?我的意思是在一行中不换行的字符数,而不是窗口的像素宽度。

编辑

寻找适用于 Linux 的解决方案

原文由 Sergey Golovchenko 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 897
2 个回答
import os
rows, columns = os.popen('stty size', 'r').read().split()

使用“stty size”命令,根据 python 邮件列表上的一个线程,该 命令在 linux 上是相当普遍的。它将“stty size”命令作为文件打开,从中“读取”,并使用简单的字符串拆分来分隔坐标。

与 os.environ[“COLUMNS”] 值不同(尽管使用 bash 作为我的标准 shell,我无法访问该值),数据也将是最新的,而我相信 os.environ[“COLUMNS”] value 仅在 python 解释器启动时有效(假设用户从那时起调整了窗口大小)。

(请参阅@GringoSuave 的回答,了解如何在 python 3.3+ 上执行此操作)

原文由 brokkr 发布,翻译遵循 CC BY-SA 4.0 许可协议

不知道为什么它在模块中 shutil ,但它在 Python 3.3 中出现了。看:

查询输出终端的大小

>>> import shutil
>>> shutil.get_terminal_size((80, 20))  # pass fallback
os.terminal_size(columns=87, lines=23)  # returns a named-tuple

低级实现在 os 模块中。跨平台——在 Linux、Mac OS 和 Windows 下工作,可能还有其他类 Unix。还有一个反向移植,尽管不再相关。

原文由 Gringo Suave 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题