Datei-Öffnen-Dialog

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gast

Hallo,

ich habe als Neuling zum Probieren ein script geschrieben,
das Konvertierungen in Textdateien vornimmt.
Geht soweit erst einmal.

Nun stört mich das Eintippen der Dateinamen und ich hätte gern
einen Dialog zur Auswahl der Ein- und Ausgabedateien, möglichst mit Mehrfachauswahl.

Das Problem hat doch so ziemlich jeder, da gibt es doch sicher etwas fertiges als Modul?
Mit tkinter habe ich mich noch nicht näher beschäftigt und ich vermute dass mir ein Eigenbau für
den Anfang auch noch etwas zu komplex wäre.

Danke und Grüße,
Edwin
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!

Für Tkinter brauchst Du dir nichts eigenes bauen, da gibt's tkFileDialog:

Code: Alles auswählen

from Tkinter import *
import tkFileDialog

def open_it():
	file = tkFileDialog.askopenfile(filetypes=[('all files','*')])

root = Tk()
Button(text="File 1", command=open_it).pack()
Button(text="File 2", command=open_it).pack()
root.mainloop()
Gruß, mawe
Edwin

Danke, werd' ich mal probieren :-)
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Hallo Edwin,

du kannst auch den Auswahlpfad und den Dateiname schon vorbelegen:

Code: Alles auswählen

from Tkinter import * 
import tkFileDialog 

def open_it(): 
    file = tkFileDialog.askopenfile(filetypes=[('Python-files','.py')],
                                    initialdir='C:/Python23')

def save_it():
    file = tkFileDialog.asksaveasfilename(filetypes=[('Python-files','.py')],
                                          initialdir='C:/Python23/Tools',
                                          initialfile='test.py')
            
root = Tk() 
Button(text="File 1", command=open_it).pack() 
Button(text="File 2", command=save_it).pack() 
root.mainloop() 
Stephan
Antworten