2013-05-07 42 views
5

Tôi đang cố gắng tạo một chương trình Tkinter có thể mở một tệp cho đến khi nó mở một cửa sổ tk có tùy chọn cho biết Tệp sau đó trình đơn thả xuống và mở ra khi bạn nhấp vào nó một cửa sổ tập tin nhưng tôi không thể tìm ra cách để thực sự mở tập tin đóMở tập tin (Tkinter)

Dưới đây là im đang cố gắng:

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

Mã này hoạt động, bạn chỉ cần cho 'trở f.read()' – Jared

+0

oh ok ahahhaha xin lỗi nhưng nói rằng tôi đã làm x = f.read làm thế nào tôi có thể làm cho nó vì vậy tôi có thể đầu vào x ở một nơi khác bên ngoài chức năng xin lỗi im một newbie – Serial

Trả lời

10

bạn đã mở các tập tin khi bạn đã làm f = open(filename). Để in nội dung của tệp vào bảng điều khiển, bạn có thể thực hiện print f.read(). Hoặc đi qua các dòng tập tin bằng dòng & in nội dung như

for line in f: 
    print line 

Dưới đây là một ví dụ về cách để mở một tập tin và in nội dung của nó trên giao diện người dùng. tôi thấy ví dụ này là hữu ích và nó cho thấy chính xác những gì bạn muốn:

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

Nguồn: http://zetcode.com/gui/tkinter/dialogs/

Các vấn đề liên quan