Auswählen einer Datei in Python mit einfachem Dialog

Lesezeit: 3 Minuten

Auswahlen einer Datei in Python mit einfachem Dialog
Mustafa Zengin

Ich möchte den Dateipfad als Eingabe in meiner 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 eine Datei auswählen können, anstatt den vollständigen Pfad einzugeben?

  • Gute Frage. Ich habe nur danach gesucht. Ich habe dafür gestimmt. Danke!

    – Priya

    28. Mai 2021 um 10:14 Uhr


Auswahlen einer Datei in Python mit einfachem Dialog
Etaoin

Wie wäre es mit tkinter?

from Tkinter import Tk     # from tkinter import Tk for Python 3.x
from tkinter.filedialog import askopenfilename

Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filename)

Getan!

  • Ich habe TypeError: ‘module’ object is not callable on Tk().withdraw() – Irgendwelche Ideen?

    – Benutzer391339

    18. Februar 2014 um 20:58 Uhr

  • Ich musste root = Tk.Tk() dann root.withdraw() machen. Jetzt schließt sich das Datei-Öffnen-Dialogfenster jedoch nicht.

    – Benutzer391339

    18. Februar 2014 um 21:07 Uhr

  • Mit Python 3.x und ich glaube, dass “Tkinter” eigentlich nur Kleinbuchstaben “tkinter” sein soll.

    – WestAce

    29. Juni 2018 um 18:11 Uhr

  • @WestAce ja, es wurde für Python3 von “Tkinter” in “tkinter” geändert

    – Ben

    19. Juli 2018 um 0:26 Uhr

  • Gibt es eine Möglichkeit, nur bestimmte Dateitypen zuzulassen? für zB. Ich möchte, dass der Benutzer nur Bilddateien auswählt

    – Shantanu Shinde

    8. November 2019 um 7:09 Uhr

Python 3.x-Version von Etaoins Antwort der Vollständigkeit halber:

from tkinter.filedialog import askopenfilename
filename = askopenfilename()

  • Für totale Parallelität sollte man das wohl auch haben import tkinter + tkinter.Tk().withdraw().

    – imallett

    4. April 2017 um 3:43 Uhr

  • das funktioniert bei mir nicht (auf Mac, Python 3.6.6) Das GUI-Fenster wird geöffnet, aber Sie können es nicht schließen und Sie erhalten Beachball of Death

    – Ben Vincent

    20. August 2018 um 11:25 Uhr

  • Hier gilt das gleiche. Der Dateidialog wird nicht geschlossen

    – Cabara

    25. Oktober 2018 um 2:20 Uhr

  • Dieser Code ist genau derselbe wie die akzeptierte Antwort, aber unvollständig.

    – erich

    8. August 2019 um 4:44 Uhr

  • Auf Mac 10.14.6 öffnete dies den Dateifinder und stürzte dann einfach das gesamte System ab 🙁

    – gaya

    6. September 2019 um 19:30 Uhr

1647533769 595 Auswahlen einer Datei in Python mit einfachem Dialog
jfs

Mit EasyGui:

import easygui
print(easygui.fileopenbox())

Installieren:

pip install easygui

Demo:

import easygui
easygui.egdemo()

  • Das ist bisher die beste Lösung. Der Hauptgrund ist, dass easygui ein Pip-Paket ist und einfach zu installieren ist

    – Yonatan Naor

    7. Juni 2017 um 8:13 Uhr

  • Auf Mac OSX 10.14.5, Python 3.6.7, easygui 0.98.1 bekomme ich einen schrecklichen Absturz, wenn ich das versuche. Nicht empfohlen.

    – Christoph Barbier

    20. August 2019 um 21:12 Uhr


  • Warum bekomme ich invalid syntax Fehler für print easygui.diropenbox()?

    – Ziegelstein

    4. September 2019 um 11:13 Uhr

  • @Bricktop stackoverflow.com/questions/826948/… ?

    – jfs

    4. September 2019 um 15:11 Uhr

  • @ChristopherBarber dasselbe mit 10.14.6. Python wird einfach immer wieder beendet.

    – gaya

    6. September 2019 um 19:17 Uhr

Auswahlen einer Datei in Python mit einfachem Dialog
Gary Kerr

Verwenden Sie in Python 2 die tkFileDialog Modul.

import tkFileDialog

tkFileDialog.askopenfilename()

Verwenden Sie in Python 3 die tkinter.filedialog Modul.

import tkinter.filedialog

tkinter.filedialog.askopenfilename()

Das hat bei mir funktioniert

Referenz : https://www.youtube.com/watch?v=H71ts4XxWYU

import  tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
print(file_path)

1647533770 333 Auswahlen einer Datei in Python mit einfachem Dialog
kylejmcintyre

Eine weitere zu berücksichtigende 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 wollte Fordern Sie den Benutzer visuell zur Eingabe einer Datei auf, wenn er keine in der Befehlszeile angegeben hat. Zenity passte perfekt. Rufen Sie dazu „zenity –file-selection“ mit dem subprocess-Modul auf und erfassen Sie die Standardausgabe. Natürlich ist diese Lösung nicht Python-spezifisch.

Zenity unterstützt mehrere Plattformen und war zufällig bereits auf unseren Entwicklungsservern installiert, sodass es unser Debugging/Entwicklung erleichterte, ohne eine unerwünschte Abhängigkeit einzuführen.

1647533770 890 Auswahlen einer Datei in Python mit einfachem Dialog
Glen Whitney

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 Datei-Öffnen-Dialog von fast jeder anderen Anwendung auf meiner OpenSUSE Tumbleweed-Installation mit dem xfce-Desktop, während tkinter etwas Verkrampftes und Schwerlesbares mit einer ungewohnten Side-Scrolling-Oberfläche erzeugte.

1005040cookie-checkAuswählen einer Datei in Python mit einfachem Dialog

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy