Gostaria de obter o caminho do arquivo como entrada no meu aplicativo de console Python.
Atualmente, só posso solicitar o caminho completo como uma entrada no console.
Existe uma maneira de acionar uma interface de usuário simples em que os usuários possam selecionar o arquivo em vez de digitar o caminho completo?
python
user-interface
dialog
filechooser
Mustafa Zengin
fonte
fonte
Versão do Python 3.x da resposta da Etaoin quanto à integridade:
fonte
import tkinter
+tkinter.Tk().withdraw()
.Com o EasyGui (documentação gerada pelo pydoc e epydoc para a versão 0.96):
Para instalar:
Demo:
fonte
invalid syntax
erroprint easygui.diropenbox()
?No Python 2, use o
tkFileDialog
móduloNo Python 3, use o
tkinter.filedialog
módulofonte
Outra opção a considerar é o Zenity: http://freecode.com/projects/zenity .
Eu tive uma situação em que estava desenvolvendo um aplicativo de servidor Python (nenhum componente da GUI) e, portanto, não queria introduzir uma dependência em nenhum kit de ferramentas da GUI do python, mas queria que alguns dos meus scripts de depuração fossem parametrizados pelos arquivos de entrada e quisesse solicitar visualmente ao usuário um arquivo se ele não especificou um na linha de comando. Zenity foi um ajuste perfeito. Para conseguir isso, chame "zenity --file-selection" usando o módulo de subprocesso e capture o stdout. Obviamente, esta solução não é específica para Python.
O Zenity suporta várias plataformas e já estava instalado em nossos servidores de desenvolvimento, facilitando nossa depuração / desenvolvimento sem introduzir uma dependência indesejada.
fonte
Obtive resultados muito melhores com o wxPython do que com o tkinter, conforme sugerido nesta resposta a uma pergunta duplicada posterior:
https://stackoverflow.com/a/9319832
A versão wxPython produziu o diálogo de arquivo que parecia o mesmo do arquivo aberto de praticamente qualquer outro aplicativo na minha instalação do OpenSUSE Tumbleweed com a área de trabalho do xfce, enquanto o tkinter produziu algo apertado e difícil de ler com uma interface de rolagem lateral desconhecida.
fonte