Set Windows command-line terminal title in 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?
Solution 1:
This works for Python2.7 under Windows.
>>> import ctypes
>>> ctypes.windll.kernel32.SetConsoleTitleA("My New Title")
Solution 2:
On Windows, a simple console command will suffice:
from os import system
system("title " + myCoolTitle)
Nice and easy.
Solution 3:
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:
import ctypes
ctypes.windll.kernel32.SetConsoleTitleW("My New Title")
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.
Solution 4:
Since you're only going to be running this on Windows (IOW, there's not a cross-platform way to do this):
- Download & install the Win32 extensions for python
-
Inside of your script, you can change the title of the console with the function
win32console.SetConsoleTitle("My Awesome App")