2013-05-07 16 views
5

Ich versuche, ein Tkinter-Programm zu machen, das eine Datei bis jetzt öffnen kann, öffnet ein tk-Fenster, das eine Option hat, die Datei dann ein Dropdown-Menü sagt und geöffnet, wenn Sie darauf klicken, öffnet es ein Fenster Datei, aber ich kann nicht herausfinden, wie man tatsächlich die Datei öffnenEröffnungsdatei (Tkinter)

den Code im Hier versucht:

from Tkinter import * 
from tkFileDialog import askopenfilename 
def openfile(): 

    filename = askopenfilename(parent=root) 
    f = open(filename) 
    f.read() 

root = Tk() 
menubar = Menu(root) 
filemenu = Menu(menubar, tearoff=0) 
filemenu.add_command(label="Open", command=openfile) 
filemenu.add_separator() 
filemenu.add_command(label="Exit", command=root.quit) 
menubar.add_cascade(label="File", menu=filemenu) 

root.config(menu=menubar) 
root.mainloop() 

Here is what the window looks like

+1

Dieser Code funktioniert, müssen Sie nur 'return f.read()' – Jared

+0

oh ok ahahhaha leid aber sag ich habe x = f.lesen wie kann ich es so machen, dass ich x irgendwo außerhalb der Funktion eingeben kann, tut mir leid, ich bin ein Neuling – Serial

Antwort

10

Sie haben bereits geöffnet, die Datei, wenn Sie f = open(filename) tun. Um den Inhalt der Datei auf die Konsole zu drucken, könnten Sie print f.read() tun. Oder gehen Sie durch die Datei Zeile für Zeile & den Inhalt wie

for line in f: 
    print line 

Hier drucken ist ein Beispiel dafür, wie eine Datei zu öffnen und seinen Inhalt auf dem UI drucken. ich dieses Beispiel hilfreich sein, und es zeigt genau das, was Sie wollen:

from Tkinter import Frame, Tk, BOTH, Text, Menu, END 
import tkFileDialog 

class Example(Frame): 

    def __init__(self, parent): 
     Frame.__init__(self, parent) 

     self.parent = parent   
     self.initUI() 

    def initUI(self): 

     self.parent.title("File dialog") 
     self.pack(fill=BOTH, expand=1) 

     menubar = Menu(self.parent) 
     self.parent.config(menu=menubar) 

     fileMenu = Menu(menubar) 
     fileMenu.add_command(label="Open", command=self.onOpen) 
     menubar.add_cascade(label="File", menu=fileMenu)   

     self.txt = Text(self) 
     self.txt.pack(fill=BOTH, expand=1) 


    def onOpen(self): 

     ftypes = [('Python files', '*.py'), ('All files', '*')] 
     dlg = tkFileDialog.Open(self, filetypes = ftypes) 
     fl = dlg.show() 

     if fl != '': 
      text = self.readFile(fl) 
      self.txt.insert(END, text) 

    def readFile(self, filename): 

     f = open(filename, "r") 
     text = f.read() 
     return text 


def main(): 

    root = Tk() 
    ex = Example(root) 
    root.geometry("300x250+300+300") 
    root.mainloop() 


if __name__ == '__main__': 
    main() 

Quelle: http://zetcode.com/gui/tkinter/dialogs/