【发布时间】:2012-06-12 08:36:00
【问题描述】:
我有以下代码,我试图让用户打开一个文本文件,一旦用户选择它,我希望代码读取它(这不是一个完成的代码块,只是显示我的追求)。
但是,我在使用 tkFileDialog.askopenfilename 并添加 'mode='rb'' 或使用如下代码并在产生错误时使用 read 时遇到了困难。
有谁知道我该如何安排这样做,因为我不希望为菜单和列表框等每个项目键入 Tkinter.'module'。 Tkinter 的初学者,有点困惑!感谢您的帮助!
import sys
from Tkinter import *
import tkFileDialog
from tkFileDialog import askopenfilename # Open dialog box
fen1 = Tk() # Create window
fen1.title("Optimisation") #
menu1 = Menu(fen1)
def open():
filename = askopenfilename(filetypes=[("Text files","*.txt")])
txt = filename.read()
print txt
filename.close()
fen1.mainloop()
显然我在这里遇到的错误是:
AttributeError: 'unicode' object has no attribute 'read'
我不明白如何使用 askopen 也能够读取我正在打开的文件。
【问题讨论】:
-
您可能希望从一个更简单的问题开始:您能否编写一个 Python 程序来打开并打印特定文件,例如
/etc/passwd或其他一些简单的、已知存在的文件? -
我以前使用过读写文本文件,但从未使用过 Tkinter,打开文件后有点困惑它是如何工作的。我需要去掉文件名吗?