更改 IDLE Shell window 标题

Change IDLE Shell window title

我正在使用 python 的多个实例 (idle/shell),它们都具有相同的标题 ('Python 3.8.1 Shell')。如何直接从 python shell 更改它? Os Windows.

我试过了,但这对我没有帮助:

import ctypes
ctypes.windll.kernel32.SetConsoleTitleA("My New Title")

也尝试过:

>>> from os import system
>>> system("title " + 'abc')

演示相同标题的屏幕截图

对于python 3

import ctypes
ctypes.windll.kernel32.SetConsoleTitleW("My New Title")

对于python 2:

import ctypes
ctypes.windll.kernel32.SetConsoleTitleA("My New Title")

编辑

试试这个代码:

>>> import sys
>>> sys.stdout.write("\x1b]2;test\x07")

在测试的地方,写你想要的名字

编辑 2 添加了屏幕截图以进行确认 我也在使用 Windows 请参阅

IDLE 有意将其 GUI(包括 Shell)与代码的 运行 隔离开来。默认情况下,它们 运行 在不同的进程中。如果您从 'python -m idlelib -n' 开始空闲,以便 GUI 代码和您的代码 运行 在同一进程中,您可能会突破 within-process 沙箱并更改 window 标题。如果你这样做并说明如何,我可能会认为这是一个需要修复的错误。

您可以在 IDLE 之外执行的操作不在 IDLE 的控制范围内,并且可能取决于系统。

IDLE 有一个“-t title”启动选项。 python -m idlelib -t My-shell 以名为“My-shell”的 shell 启动 IDLE。要在标题中包含 space(可能还有其他字符,具体取决于系统),如“My shell”,请在命令行中引用它。在 Windows 上,使用双引号,就像我刚才所做的那样。希望能满足您的需求。

我们可以将 'Change title' 添加到 Shell 菜单。但是 AFAIK 你是第一个要求这种能力的人,IDLE 章程是为了保持它相当简单。