python - 打开文件 (Tkinter)

标签 python tkinter openfiledialog

我正在尝试制作一个可以打开文件的 Tkinter 程序。到目前为止,它打开了一个 tk 窗口,其中有一个选项,上面写着"file",然后是一个下拉菜单,当你点击它时它说“打开”,它会打开一个文件窗口,但我不知道如何实际打开那个文件

这是我正在尝试的代码:

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

最佳答案

当您执行 f = open(filename) 时,您已经打开了文件。 要将文件的内容打印到控制台,您可以执行 print f.read()。 或者逐行浏览文件并打印内容

for line in f:
    print line

这是一个示例,说明如何打开文件并在 UI 上打印文件的内容。 我发现这个示例很有用,它准确地显示了您想要的内容:

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

来源:http://zetcode.com/tkinter/dialogs/

关于python - 打开文件 (Tkinter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429716/

相关文章:

python - Tkinter 中的程序窗口锁定

python - 函数 is_prime - 错误

python - 从 pandas Dataframe 字符串的科学记数号中获取幂数

python - 如何使用 python 和 tkinter 在笔记本小部件中插入滚动条和表单?

c# - 检查文件扩展名是否是图像的好方法

c# - 打开多个文件(OpenFileDialog,C#)

.net - WindowsBase.dll 中发生了 'System.ComponentModel.Win32Exception' 类型的第一次机会异常

Python:为什么要 pickle ?

python - 如何将微调器值设置为等于 kivy 中 python 方法的输出列表

python - 子类化 tk.Listbox 时出错(属性错误对象没有属性 'tk' )