tkfiledialog instalar initialdir askopenfilename python tkinter openfiledialog

instalar - tkinter python 3



Archivo de apertura(Tkinter) (1)

Estoy tratando de hacer un programa de Tkinter que pueda abrir un archivo hasta el momento, abre una ventana de tk que tiene una opción que dice Archivo, luego un menú desplegable y dice abrir al hacer clic en él, abre una ventana de archivo pero no puedo entender cómo abrir realmente ese archivo

Aquí está el código intentando:

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()


Ya ha abierto el archivo cuando lo hizo f = open(filename) . Para imprimir el contenido del archivo en la consola, puede print f.read() . O recorra el archivo línea por línea e imprima el contenido como

for line in f: print line

Aquí hay un ejemplo de cómo abrir un archivo e imprimir su contenido en la interfaz de usuario. Encontré este ejemplo útil y muestra exactamente lo que desea:

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()

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