我试图在Python的Tkinter中为scrolledText创建导入函数,但是在读取文件时会引发AttributeError。代码:
def open_command():
openfile = tkFileDialog.askopenfilename()
if openfile != None:
contents = openfile.read()
textPad.delete('1.0', END)
textPad.insert('1.0', contents)
openfile.close()
错误:
contents = openfile.read()
AttributeError: 'unicode' object has no attribute 'read'
我想澄清一下&text;' textPad'指的是一个“滚动的文本”'宾语。 有谁知道为什么会这样?起初我以为错误可能来自编码,所以我用UTF-8编码,但它仍然返回相同的错误。提前谢谢!
答案 0 :(得分:2)
tkFileDialog.askopenfilename()
返回文件名而不是文件对象。你会想要做的事情:
def open_command():
filename = tkFileDialog.askopenfilename()
if filename is not None:
with open(filename) as f:
contents = f.read()
textPad.delete('1.0', END)
textPad.insert('1.0', contents)
[如果您使用的是Python 2.7,请考虑使用Python 3或将上述内容更改为open(filename, 'r')
]