Chciałbym uzyskać ścieżkę do pliku jako dane wejściowe w mojej aplikacji konsoli Pythona.
Obecnie mogę tylko poprosić o pełną ścieżkę jako dane wejściowe w konsoli.
Czy istnieje sposób na wywołanie prostego interfejsu użytkownika, w którym użytkownicy mogą wybrać plik zamiast wpisywać pełną ścieżkę?
python
user-interface
dialog
filechooser
Mustafa Zengin
źródło
źródło
Wersja odpowiedzi Etaoin w Pythonie 3.x dotycząca kompletności:
źródło
import tkinter
+tkinter.Tk().withdraw()
.Z EasyGui (dokumentacja generowane przez pydoc i epydoc dla wersji 0.96):
Żeby zainstalować:
Próbny:
źródło
invalid syntax
błądprint easygui.diropenbox()
?W Pythonie 2 użyj
tkFileDialog
modułu module.W Pythonie 3 użyj
tkinter.filedialog
modułu.źródło
Inną opcją do rozważenia jest Zenity: http://freecode.com/projects/zenity .
Miałem sytuację, w której tworzyłem aplikację serwerową w Pythonie (bez komponentu GUI) i dlatego nie chciałem wprowadzać zależności od żadnych zestawów narzędzi GUI w języku Python, ale chciałem, aby niektóre z moich skryptów debugowania były sparametryzowane przez pliki wejściowe i chciałem wizualnie pytaj użytkownika o plik, jeśli nie podał go w wierszu poleceń. Zenity idealnie pasowało. Aby to osiągnąć, wywołaj "zenity --file-selection" używając modułu podprocesu i przechwyć standardowe wyjście. Oczywiście to rozwiązanie nie jest specyficzne dla Pythona.
Zenity obsługuje wiele platform i zdarzyło się, że zostało już zainstalowane na naszych serwerach deweloperskich, więc ułatwiło nam debugowanie / rozwój bez wprowadzania niechcianej zależności.
źródło
Uzyskałem znacznie lepsze wyniki z wxPythonem niż tkinter, jak sugeruje ta odpowiedź na późniejsze zduplikowane pytanie:
https://stackoverflow.com/a/9319832
Wersja wxPython utworzyła okno dialogowe pliku, które wyglądało tak samo, jak okno dialogowe otwierania pliku z niemal każdej innej aplikacji na mojej instalacji OpenSUSE Tumbleweed z pulpitem xfce, podczas gdy tkinter stworzył coś ciasnego i trudnego do odczytania z nieznanym interfejsem przewijania bocznego.
źródło