Otra opción a tener en cuenta es Zenity: http://freecode.com/projects/zenity.
Tuve una situación en la que estaba desarrollando una aplicación de servidor Python (sin componente GUI) y por lo tanto no quería introducir una dependencia en ningún juego de herramientas GUI de python, pero quería que algunos de mis scripts de depuración se parametrasen por entrada archivos y quería solicitar visualmente al usuario un archivo si no especificaban uno en la línea de comando. Zenity fue un ajuste perfecto. Para lograr esto, invoque "zenity --file-selection" utilizando el módulo de subproceso y capture el stdout. Por supuesto, esta solución no es específica de Python.
Zenity es compatible con múltiples plataformas y ya está instalado en nuestros servidores de desarrollo, por lo que facilitó nuestra depuración/desarrollo sin introducir una dependencia no deseada.
Esta pregunta invitará a las respuestas que recomiendan una biblioteca de python simple y multiplataforma. No es una buena pregunta. Habrá muchas respuestas diferentes, etc. – leonneo
Veo por qué se cerró esta pregunta, pero para mí fue la más rápida de proporcionar un ejemplo claro y sencillo sobre cómo abrir un diálogo de archivo con Tkinter (también primer hit en google). Tal vez valdría la pena reformularlo para que pueda ser reabierto. – luator
@luator, editó la pregunta para seguir las reglas del centro de ayuda. –