Dies ist ein Memo der Prozedur zur Verwendung des Dateidialogs mit tkinter.
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)
Ö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*")]
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
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