¿Cómo controlar el tamaño de la ventana de shell de Windows desde una secuencia de comandos de python?

Al iniciar un archivo python de tipo script desde Windows, obtiene una ventana de tipo shell de Windows donde se ejecuta el script. ¿Cómo puede el script determinar y también configurar / controlar el tamaño de la ventana, el tamaño del búfer de pantalla y la posición de la ventana de dicha ventana? Sospecho que esto se puede hacer con el módulo pywin32 pero no puedo encontrar cómo.

Puedes hacer esto usando la función SetConsoleWindowInfo de la API de win32. Lo siguiente debería funcionar:

 from ctypes import windll, byref from ctypes.wintypes import SMALL_RECT STDOUT = -11 hdl = windll.kernel32.GetStdHandle(STDOUT) rect = wintypes.SMALL_RECT(0, 50, 50, 80) # (left, top, right, bottom) windll.kernel32.SetConsoleWindowInfo(hdl, True, byref(rect)) 

ACTUALIZAR:

La posición de la ventana es básicamente lo que la variable rect arriba establece a través de los argumentos left, top, right, bottom . El tamaño real se deriva de estos argumentos:

 width = right - left + 1 height = bottom - top + 1 

Para establecer el tamaño del búfer de pantalla en, por ejemplo, 100 filas por 80 columnas, puede usar la API SetConsoleScreenBufferSize :

 bufsize = wintypes._COORD(100, 80) # rows, columns windll.kernel32.SetConsoleScreenBufferSize(h, bufsize)