integrar - ¿Un diálogo de archivo rápido y sencillo en Python?
integrar python con html (5)
Eche un vistazo a EasyGUI, un módulo muy fácil de usar que debería hacer el trabajo - http://easygui.sourceforge.net/
Utilizaría la función fileopenbox - http://www.ferg.org/easygui/easygui.html#-fileopenbox
Tengo un script simple que analiza un archivo y lo carga a una base de datos. No necesito una IU, pero ahora estoy pidiendo al usuario que raw_input
el archivo utilizando raw_input
que es el más antipático, especialmente porque el usuario no puede copiar / pegar la ruta. Me gustaría una forma rápida y fácil de presentar un diálogo de selección de archivos al usuario, pueden seleccionar el archivo y luego se carga en la base de datos. (En mi caso de uso, si eligieron el archivo incorrecto, no se analizaría, y no sería un problema, incluso si se cargó en la base de datos).
import tkFileDialog
file_path_string = tkFileDialog.askopenfilename()
Este código está cerca de lo que quiero, pero deja un marco vacío molesto abierto (que no se puede cerrar, probablemente porque no he registrado un controlador de evento cerrado).
No tengo que usar tkInter, pero como está en la biblioteca estándar de Python, es un buen candidato para la solución más rápida y fácil.
¿Cuál es una forma rápida y fácil de solicitar un archivo o nombre de archivo en una secuencia de comandos sin ninguna otra interfaz de usuario?
Pruebe con wxPython :
import wx
def get_path(wildcard):
app = wx.App(None)
style = wx.FD_OPEN | wx.FD_FILE_MUST_EXIST
dialog = wx.FileDialog(None, ''Open'', wildcard=wildcard, style=style)
if dialog.ShowModal() == wx.ID_OK:
path = dialog.GetPath()
else:
path = None
dialog.Destroy()
return path
print get_path(''*.txt'')
Puedes usar http://easygui.sourceforge.net/ :
import easygui
path = easygui.fileopenbox()
Para instalar easygui
, puede usar pip
:
pip3 install easygui
Es un único módulo puro de Python ( easygui.py
) que utiliza tkinter
.
Si no necesita la interfaz de usuario o espera que el programa se ejecute en una CLI, podría analizar el archivo como un argumento. Esto le permitiría usar la función de autocompletar de su CLI para encontrar rápidamente el archivo que necesita.
Esto probablemente solo sea útil si el script no es interactivo además de la entrada de ruta de archivo.
Tkinter es la forma más fácil si no quieres tener otras dependencias. Para mostrar solo el cuadro de diálogo sin ningún otro elemento GUI, debe ocultar la ventana raíz utilizando el método de withdraw
:
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
Variante de Python 2:
import Tkinter, tkFileDialog
root = Tkinter.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename()