Me gustaría obtener la ruta del archivo como entrada en mi aplicación de consola Python.
Actualmente solo puedo pedir la ruta completa como entrada en la consola.
¿Hay alguna manera de activar una interfaz de usuario simple donde los usuarios puedan seleccionar el archivo en lugar de escribir la ruta completa?
python
user-interface
dialog
filechooser
Mustafa Zengin
fuente
fuente
Versión de Python 3.x de la respuesta de Etaoin para completar:
fuente
import tkinter
+tkinter.Tk().withdraw()
.Con EasyGui (documentación generada por pydoc y epydoc para la versión 0.96):
Instalar:
Manifestación:
fuente
invalid syntax
error paraprint easygui.diropenbox()
?En Python 2 usa el
tkFileDialog
módulo.En Python 3 usa el
tkinter.filedialog
módulo.fuente
Otra opción a considerar es Zenity: http://freecode.com/projects/zenity .
Tuve una situación en la que estaba desarrollando una aplicación de servidor Python (sin componente de GUI) y, por lo tanto, no quería introducir una dependencia en ningún kit de herramientas de GUI de Python, pero quería que algunos de mis scripts de depuración fueran parametrizados por archivos de entrada y quería solicite visualmente al usuario un archivo si no especificó uno en la línea de comando. Zenity fue un ajuste perfecto. Para lograr esto, invoque "zenity --file-selection" usando el módulo de subproceso y capture el stdout. Por supuesto, esta solución no es específica de Python.
Zenity admite múltiples plataformas y ya estaba instalado en nuestros servidores de desarrollo, por lo que facilitó nuestra depuración / desarrollo sin introducir una dependencia no deseada.
fuente
Obtuve resultados mucho mejores con wxPython que con tkinter, como se sugiere en esta respuesta a una pregunta duplicada posterior:
https://stackoverflow.com/a/9319832
La versión de wxPython produjo el diálogo de archivo que se veía igual que el diálogo de archivo abierto de casi cualquier otra aplicación en mi instalación de OpenSUSE Tumbleweed con el escritorio xfce, mientras que tkinter produjo algo estrecho y difícil de leer con una interfaz de desplazamiento lateral desconocida.
fuente