Cuadro de mensaje de Python sin gran dependencia de la biblioteca

¿Existe una clase de mensaje en la que pueda mostrar un cuadro de mensaje simple sin una gran biblioteca de GUI o cualquier biblioteca en caso de éxito o fracaso del progtwig? (Mi guion solo hace 1 cosa).

Además, solo lo necesito para correr en Windows.

Puede usar la biblioteca de ctypes , que viene instalada con Python:

import ctypes MessageBox = ctypes.windll.user32.MessageBoxW MessageBox(None, 'Hello', 'Window title', 0) 

El código anterior es para Python 3.x. Para Python 2.x, use MessageBoxA lugar de MessageBoxW ya que Python 2 usa cadenas no Unicode de forma predeterminada.

También hay un par de prototipos en las bibliotecas predeterminadas sin usar ctypes.

Cuadro de mensaje simple:

 import win32ui win32ui.MessageBox("Message", "Title") 

Otras opciones

 if win32ui.MessageBox("Message", "Title", win32con.MB_YESNOCANCEL) == win32con.IDYES: win32ui.MessageBox("You pressed 'Yes'") 

También hay aproximadamente uno equivalente en win32gui y otro en win32api. Los documentos para todos parecen estar en C:\Python{nn}\Lib\site-packages\PyWin32.chm

Una forma rápida y sucia es llamar al sistema operativo y usar el comando “zenity” (el módulo de subproceso debe incluirse de manera predeterminada en cualquier distribución de Python, zenity también está presente en todos los principales linux). Pruebe este breve script de ejemplo, funciona en mi Ubuntu 14.04.

 import subprocess as SP # call an OS subprocess $ zenity --entry --text "some text" # (this will ask OS to open a window with the dialog) res=SP.Popen(['zenity','--entry','--text', 'please write some text'], stdout=SP.PIPE) # get the user input string back usertext=str(res.communicate()[0][:-1]) # adjust user input string text=usertext[2:-1] print("I got this text from the user: %s"%text) 

Vea la zenity –help para diálogos más complejos.

También puede usar la clase messagebox desde tkinter: from tkinter import messagebox menos que tkinter sea esa enorme GUI que desea evitar. El uso es simple, es decir: messagebox.FunctionName(title, message [, options]) con FuntionName en (showinfo, showwarning, showerror, askquestion, askokes canc, askyesno, askretrycancel).

El módulo PyMsgBox utiliza el tkinter de Python, por lo que no depende de ningún otro módulo de terceros. Puedes instalarlo con pip install pymsgbox .

Los nombres de las funciones son similares a las funciones alert() , confirm() y prompt() JavaScript:

 >>> import pymsgbox >>> pymsgbox.alert('This is an alert!') >>> user_response = pymsgbox('What is your favorite color?')