Dateidialog mit Python-GUI öffnen (tkinter.filedialog)

Dies ist ein Memo der Prozedur zur Verwendung des Dateidialogs mit tkinter.

Wählen Sie einen Ordner

Mit tkinter.filedialog.askdirectory können Sie einen Ordnerauswahldialog öffnen. Geben Sie das Anfangsverzeichnis mit initialdir an.

python


import tkinter.filedialog
iDir = os.path.abspath(os.path.dirname(__file__))
folder_name = tkinter.filedialog.askdirectory(initialdir=iDir)

Wählen Sie eine Datei aus

Öffnen Sie den Dateidialog mit tkinter.filedialog.askopenfilename. Geben Sie das Muster der Kandidatendateien mit Dateitypen an und geben Sie das Verzeichnis an, das zuerst mit initialdir geöffnet werden soll. Verwenden Sie zum Auswählen mehrerer Dateien tkinter.filedialog.askopenfilenames.

python


import tkinter.filedialog
fTyp = [("", "*")]
iDir = os.path.abspath(os.path.dirname(__file__))
file_name = tkinter.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir)

Sie können die Dateierweiterung angeben. Geben Sie in der Reihenfolge von Überschrift und Muster an.

python


fTyp = [("Datendatei", "*.csv;*.xlsx;*.xls")]

Sie können den Dateinamen auch durch teilweise Übereinstimmung auswählen.

python


fTyp = [("Logdatei", "log*")]

Anwendungsbeispiel

Wenn Sie es tatsächlich verwenden, denke ich, ist es am besten, es so zu verwenden.

python


import os
import tkinter as tk
import tkinter.filedialog

class TkinterClass:
    def __init__(self):
        root = tk.Tk()
        root.geometry("500x350")

        button = tk.Button(root, text='Dateidialog öffnen', font=('', 20),
                           width=24, height=1, bg='#999999', activebackground="#aaaaaa")
        button.bind('<ButtonPress>', self.file_dialog)
        button.pack(pady=40)

        self.file_name = tk.StringVar()
        self.file_name.set('Nicht ausgewählt')
        label = tk.Label(textvariable=self.file_name, font=('', 12))
        label.pack(pady=0)

        button = tk.Button(root, text='Ordnerdialog öffnen', font=('', 20),
                           width=24, height=1, bg='#999999', activebackground="#aaaaaa")
        button.bind('<ButtonPress>', self.folder_dialog)
        button.pack(pady=40)

        self.folder_name = tk.StringVar()
        self.folder_name.set('Nicht ausgewählt')
        label = tk.Label(textvariable=self.folder_name, font=('', 12))
        label.pack(pady=10)

        root.mainloop()

    def file_dialog(self, event):
        fTyp = [("", "*")]
        iDir = os.path.abspath(os.path.dirname(__file__))
        file_name = tk.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir)
        if len(file_name) == 0:
            self.file_name.set('Abgebrochene Auswahl')
        else:
            self.file_name.set(file_name)

    def folder_dialog(self, event):
        iDir = os.path.abspath(os.path.dirname(__file__))
        folder_name = tk.filedialog.askdirectory(initialdir=iDir)
        if len(folder_name) == 0:
            self.folder_name.set('Abgebrochene Auswahl')
        else:
            self.folder_name.set(folder_name)


if __name__ == '__main__':
    TkinterClass()
Lass es uns versuchen

Beiseite

Funktioniert gut importieren


import tkinter as tk
import tkinter.filedialog
tk.filedialog.askdirectory(initialdir=iDir)

Importieren, der nicht funktioniert


import tkinter as tk
tk.filedialog.askdirectory(initialdir=iDir)

Warum! ??

Recommended Posts

Dateidialog mit Python-GUI öffnen (tkinter.filedialog)
Lassen Sie uns eine GUI mit Python erstellen.
Erstellen einer einfachen Power-Datei mit Python
Ich habe mit Python eine Einstellungsdatei erstellt
Lesen einer CSV-Datei mit Python 2/3
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Erstellen Sie eine mit tkinter erstellte ausführbare GUI-Datei
Dateivorgang mit open - "../"
Sie können auch mit Python problemlos eine GUI erstellen
Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)
Lesen Sie mit Python Zeile für Zeile aus der Datei
Führen Sie eine Python-Datei mit relativem Import in PyCharm aus
[Python] Erstellen Sie mit cx_Freeze eine Verteilungsdatei für das Tkinter-Programm
Erstellen Sie eine 2D-CAD-Datei ".dxf" mit Python [ezdxf]
Zeichnen Sie eine netCDF-Datei mit Python
[GUI in Python] PyQt5-Layout-Management-
Machen Sie eine Lotterie mit Python
Erstellen Sie ein Verzeichnis mit Python
[GUI mit Python] PyQt5-Vorbereitung-
Laden Sie die CSV-Datei mit Python herunter
[GUI mit Python] PyQt5 -Paint-
Datei im Dialog mit Python auswählen → Dateinamen im Meldungsfeld anzeigen
So einfach wie möglich eine GUI mit Python erstellen [tkinter edition]
[Python] Was ist eine with-Anweisung?
Extrahieren Sie die xz-Datei mit Python
Bedienen Sie den Belegdrucker mit Python
Python-Grafikhandbuch mit Matplotlib.
[Python] Mit Python in eine CSV-Datei schreiben
Erstellen Sie mit tkinter eine Python-GUI
[Mit Python automatisiert! ] Teil 1: Datei einstellen
Implementierter Dateidownload mit Python + Bottle
Erstellen Sie eine Deb-Datei mit Docker
Löse ABC166 A ~ D mit Python
Ausgabe in eine CSV-Datei mit Python
Erstellen Sie eine virtuelle Umgebung mit Python!
Öffnen Sie UTF-8 mit Stückliste in Python
Ich habe mit Python eine Lotterie gemacht.
Erstellen Sie eine Binärdatei in Python
Erstellen einer virtuellen Umgebung mit Python 3
[GUI in Python] PyQt5-Drag & Drop-
Löse ABC168 A ~ C mit Python
Erstellen Sie ein Empfehlungssystem mit Python
[Python] Generiere ein Passwort mit Slackbot
Löse ABC162 A ~ C mit Python
Löse ABC158 A ~ C mit Python
Lassen Sie uns ein Diagramm mit Python erstellen! !!
[Mit Python automatisiert! ] Teil 2: Dateivorgang
[GUI mit Python] PyQt5 -Custom Widget-
Datei mit Standard-App öffnen
Zeichnen Sie ein Diagramm mit der PySimple-Benutzeroberfläche
[Python] Erbt eine Klasse mit Klassenvariablen
Ich habe mit Python einen Daemon erstellt
Schreiben Sie ein Batch-Skript mit Python3.5 ~
Erstellen Sie mit Django einen Datei-Uploader
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
Die Idee, die Konfigurationsdatei mit einer Python-Datei anstelle von yaml zu füttern
[Python] Lesen Sie eine CSV-Datei mit großen Datenmengen mithilfe eines Generators
[ROS2] So spielen Sie eine Bag-Datei mit Start im Python-Format ab
Versuchen Sie, Ihrer IFC-Datei mit IfcOpenShell Python eine Wand hinzuzufügen
[Pyenv] Erstellen einer Python-Umgebung mit Ubuntu 16.04