als Python-Newbie versuche ich gerade mit tkinter einen Filedialog zu erstellen, um den Dateinamen einer Datei zurück zu bekommen und in ein Entry zu schreiben. Hier der Quellcode:
Code: Alles auswählen
from tkinter import *
from openpyxl import *
import csv
def CSVEinlesen(fileName):
reader = csv.reader(open(fileName, "rb"), delimiter=";")
wb = Workbook()
ws = wb.active
Hauptfenster = Tk() # Hauptfenster wird erzeugt
Hauptfenster.title("CSV 2 XLSX CSV-Konverter")
Hauptfenster.geometry("440x150")
FileOpenFrame = LabelFrame(Hauptfenster, text="CSV-Datei auswählen", width=430, height=80)
FileOpenFrame.place(x=5, y=5)
CSV_Label = Label(Hauptfenster, text="CSV-Datei")
CSV_Label.place(x=15, y=25)
CSV_Eingabe = Entry(Hauptfenster, width=54)
CSV_Eingabe.place(x=15, y=46)
def lese_Dateinamen():
# CSV_Eingabe.insert(0, "Sch hab gegliggt!")
Dateiname = filedialog.askopenfilename()
CSV_Eingabe.insert(0, Dateiname)
FileOpenD = Button(Hauptfenster, text="Datei suchen", command=lese_Dateinamen)
FileOpenD.place(x=350, y=43)
CSV_Konvert = Button(Hauptfenster, text="CSV nach Excel konvertieren!")
CSV_Konvert.place(x=140, y=100)
mainloop() # benötigt als Event-Schleife für Windows
Die Codevervollständigung zeigt mir allerdings "filedialog" an. Ich verstehe gerade nicht, wo mein Fehler ist.Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Internet\Python\Python3.4.2\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "C:\Internet\Python\Scripts\CSV2XLSX\CSV2XLSX.py", line 28, in lese_Dateinamen
Dateiname = filedialog.askopenfilename()
NameError: name 'filedialog' is not defined
Ach ja, ich verwende Python 3.4