Ich möchte den Dateipfad als Eingabe in meine Python-Konsolenanwendung erhalten.
Derzeit kann ich nur nach dem vollständigen Pfad als Eingabe in der Konsole fragen.
Gibt es eine Möglichkeit, eine einfache Benutzeroberfläche auszulösen, in der Benutzer Dateien auswählen können, anstatt den vollständigen Pfad einzugeben?
python
user-interface
dialog
filechooser
Mustafa Zengin
quelle
quelle
Python 3.x-Version von Etaoins Antwort der Vollständigkeit halber:
quelle
import tkinter
+ habentkinter.Tk().withdraw()
.Mit EasyGui (Dokumentation von pydoc und epydoc für Version 0.96):
Installieren:
Demo:
quelle
invalid syntax
Fehler fürprint easygui.diropenbox()
?Verwenden Sie in Python 2 das
tkFileDialog
Modul.Verwenden Sie in Python 3 das
tkinter.filedialog
Modul.quelle
Eine weitere in Betracht zu ziehende Option ist Zenity: http://freecode.com/projects/zenity .
Ich hatte eine Situation, in der ich eine Python-Serveranwendung (keine GUI-Komponente) entwickelte und daher keine Abhängigkeit von Python-GUI-Toolkits einführen wollte, aber ich wollte, dass einige meiner Debug-Skripte durch Eingabedateien parametrisiert werden und wollten Fordern Sie den Benutzer visuell zur Eingabe einer Datei auf, wenn er keine in der Befehlszeile angegeben hat. Zenity passte perfekt. Rufen Sie dazu mit dem Unterprozessmodul "zenity --file-selection" auf und erfassen Sie das stdout. Natürlich ist diese Lösung nicht Python-spezifisch.
Zenity unterstützt mehrere Plattformen und wurde zufällig bereits auf unseren Entwicklungsservern installiert, sodass das Debuggen / Entwickeln erleichtert wurde, ohne dass eine unerwünschte Abhängigkeit eingeführt wurde.
quelle
Ich habe mit wxPython viel bessere Ergebnisse erzielt als mit tkinter, wie in dieser Antwort auf eine spätere doppelte Frage vorgeschlagen:
https://stackoverflow.com/a/9319832
Die wxPython-Version erzeugte den Dateidialog, der genauso aussah wie der Dialog zum Öffnen von Dateien aus nahezu jeder anderen Anwendung in meiner OpenSUSE Tumbleweed-Installation mit dem xfce-Desktop, während tkinter mit einer unbekannten Side-Scrolling-Oberfläche etwas beengtes und schwer lesbares erzeugte.
quelle