一尘不染

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

python

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

编辑

寻找适用于Linux的解决方案


阅读 715

收藏
2020-02-22

共2个答案

一尘不染

import os
rows, columns = os.popen('stty size', 'r').read().split()

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

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

2020-02-22
一尘不染

不知道为什么它在模块中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模块中有一个底层实现。

2020-02-22