gpt4 book ai didi

python - .read() 在 python 中使用askopenfilename() 返回 "unicode object has no attribute read"

转载 作者:行者123 更新时间:2023-12-01 02:39:56 25 4
gpt4 key购买 nike

我试图在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'

我想澄清一下,“textPad”是指“ScrolledText”对象。有谁知道为什么会发生这种情况?起初我认为错误可能来自编码,所以我用UTF-8编码,但它仍然返回相同的错误。提前致谢!

最佳答案

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')]

关于python - .read() 在 python 中使用askopenfilename() 返回 "unicode object has no attribute read",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45829841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com