如何获取 Intellij 输出控制台的终端宽度

问题描述

使用 get_terminal_size 模块中的 shutil 方法,可以在运行时轻松确定终端的宽度。

以下脚本在 gnome-terminal 或 Terminator 等终端模拟器中直接启动时运行良好:

from shutil import get_terminal_size
from time import sleep

if __name__ == "__main__":
    print("start")
    for i in range(5):
        print(f"term size is {get_terminal_size().columns}")
        sleep(.5)
    print("finished")

在脚本运行时更改窗口大小时,输出如下

start
term size is 112
term size is 102
term size is 102
term size is 113
term size is 115
finished

但是,在 IntelliJ 中通过单击运行按钮执行时,方法 get_terminal_size 始终返回回退值 80:

start
term size is 80
term size is 80
term size is 80
term size is 80
term size is 80
finished

从 IntelliJ 中包含的终端启动脚本也可以正常工作。

有没有办法通过其他方式在 IntelliJ 的输出控制台中获取终端大小?或者是否可以启用终端仿真使 get_terminal_size 工作?看来,至少对于 PyCharm 而言,存在或存在相应的设置 according to one SO answer

解决方法

当您通过 Python 脚本运行配置运行程序时 - IDE 不会启动终端。它在嵌入式控制台窗口中运行程序,这在技术上不是操作系统终端。