Ejecuta el script de Python sin que aparezca la consola de Windows

¿Hay alguna manera de ejecutar un script de Python en Windows XP sin que aparezca un shell de comandos momentáneamente? A menudo necesito automatizar WordPerfect (para trabajar) con Python, e incluso si mi script no tiene salida, si lo ejecuto sin WP, un shell vacío todavía aparece por un segundo antes de desaparecer. hay alguna forma de prevenir esto? ¿Algún tipo de redirección de salida quizás?

pythonw.exe ejecutará la secuencia de comandos sin un símbolo del sistema. El problema es que el intérprete de Python, Python.exe, está vinculado con el subsistema de la consola para producir una salida de consola (ya que eso es el 90% de los casos). Pythonw.exe está vinculado con el subsistema GUI, y Windows no creará una consola ventana de salida para él a menos que se lo pida.

Este artículo analiza la progtwigción de la GUI con Python y también alude a pythonw.exe. También señala que si sus archivos de Python terminan con .pyw lugar de .py , el instalador estándar de Windows configurará las asociaciones correctamente y ejecutará su Python en pythonw.exe.

En su caso, no suena como un problema, pero confiar en pythonw.exe hace que su aplicación sea específica de Windows; existen otras soluciones para lograr esto en, digamos, Mac OS X.

Si nombra sus archivos con la extensión “.pyw”, entonces windows los ejecutará con el intérprete pythonw.exe. Esto no abrirá la consola dos para ejecutar su script.

Intenté los métodos anteriores, sin embargo, una consola fija aparece y desaparece rápidamente debido a un temporizador en mi script. Finalmente, encontré el siguiente código:

 import ctypes import os import win32process hwnd = ctypes.windll.kernel32.GetConsoleWindow() if hwnd != 0: ctypes.windll.user32.ShowWindow(hwnd, 0) ctypes.windll.kernel32.CloseHandle(hwnd) _, pid = win32process.GetWindowThreadProcessId(hwnd) os.system('taskkill /PID ' + str(pid) + ' /f')