在Python中设置Windows命令行终端标题
我在 Windows 计算机上运行某个 Python 脚本的多个实例,每个实例都来自不同的目录并使用单独的 shell 窗口。不幸的是,Windows 为每个 shell 窗口提供了相同的名称:
<User>: C:\Windows\system32\cmd.exe - <script.py>
是否可以通过 Python 命令将此名称设置为其他名称?
I'm running several instances of a certain Python script on a Windows machine, each from a different directory and using a separate shell windows. Unfortunately Windows gives each of these shell windows the same name:
<User>: C:\Windows\system32\cmd.exe - <script.py>
Is it possible to set this name to something else through a Python command?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
在 Windows 上,一个简单的控制台命令就足够了:
又好又简单。
On Windows, a simple console command will suffice:
Nice and easy.
这适用于 Windows 下的 Python2.7。
This works for Python2.7 under Windows.
由于没有足够的代表,我无法向上述帖子添加评论 - 因此作为新帖子。
在 Python 3 中,您可以使用:
我编辑了这个答案:请注意,它现在使用 SetConsoleTitleW,它是 SetConsoleTitle 函数。
这样您就可以使用 unicode,而不再需要将字符串/变量编码为字节对象。您只需将参数替换为字符串变量即可。
Due to not enough rep I cannot add a comment to the above post - so as a new post.
In Python 3 you can use:
I edited this answer: please remark, that it now uses SetConsoleTitleW, which is the Unicode version of the SetConsoleTitle function.
This way you can use unicode and no longer have to encode the string/variable to a byte object. You can just replace the argument with the string variable.
由于您只会在 Windows 上运行此程序(IOW,没有跨平台的方法来执行此操作):
在脚本内部,您可以更改控制台的标题使用 函数
win32console.SetConsoleTitle("My Awesome App")
Since you're only going to be running this on Windows (IOW, there's not a cross-platform way to do this):
Inside of your script, you can change the title of the console with the function
win32console.SetConsoleTitle("My Awesome App")
我不知道如何从脚本中更改 cmd 窗口标题。
但是,如果使用
start
命令<,则可以在启动脚本时设置标题/a>.I am not aware of a way to change the
cmd
window title from within the script.However, you can set the title when launching the script if you use the
start
command.发布的
system()
和 的比较基于windll
的方法结合添加与已发布的两种方法相关的延迟开销的小型定量比较:
在某些情况下,人们可能会花费大约半毫秒(但是不是几十个)
windll.kernel32
方法似乎很有前途,并且可能更好地用于替代显示 WatchDOG / StateVARs / ProgressLOG / 自动自我诊断消息,存在在长时间运行的进程中,以软实时需求有效地显示。Comparison of the posted
system()
&windll
-based methodstying to add a small quantitative comparison of latency overheads associated with two of the posted methods:
In cases, where one might spend about a half of millisecond ( but not some tens of that ) the
windll.kernel32
method seems promising and may serve better for an alternative display of a WatchDOG / StateVARs / ProgressLOG / auto-self-diagnostic messages, being efficiently displayed in a soft real-time need, during long running processes.使用:
或:
Use:
Or:
使用 OS 模块 与终端交互
import os
os.system('title your_tile')
解释:
所以如果你打开您的终端并输入
title your_title
会将终端标题更改为your_title
在 Python 中,
OS.system()
用于在终端中输入这就是使用 Python 更改终端标题的方法
Using OS module To interact with the terminal
import os
os.system('title your_tile')
Explanation:
So if you open your terminal and type
title your_title
is will change the terminal title toyour_title
In Python the
OS.system()
is used to type into the terminalThis is how you will change title of terminal with Python
如果启动 Idle-shell 是一个选项而不是 cmd壳:
If starting the Idle-shell is an option instead of the cmd shell:
现在可以通过将标准转义序列输出到控制台(stdout)来更改任何语言中的窗口标题。这是批处理文件中的一个工作示例 更改命令提示符以仅显示当前目录名称,但只需打印 ESC 右括号 2 分号 - title-here BEL (control-G) 就可以了。还有一个易于修改的 PHP 示例:
It is now possible to change the window title from within any language via outputting a standard escape sequence to the console (stdout). Here's a working example from a batch file Change command prompt to only show current directory name however just printing ESC close-bracket 2 semicolon your-title-here BEL (control-G) will do it. Also an easily adapted PHP example: