Python Tkinter --AttributeError

Python Tkinter --AttributeError

似乎无法理解下面的 Tkinter 消息。通常做一个快速 搜索会提供答案,但这次我似乎惹恼了搜索引擎 可能导致以下错误的原因。很想知道我是否缺少 Python 包,或者下面的第 25 行用于旧版本的 Python 并且它已更新为 更新的命令。

我正在将以下包导入到脚本中:

从 tkinter 导入 *
从 tkinter 导入文件对话框

该函数假设保存任何输入文本区域的文本。它确实保存了文件,但文件是空的。

谢谢,

库尔特

C:\Users\kurt>python --version Python3.10.4


def saveFiles():  
    filename = filedialog.asksaveasfile(
        mode='w',
        title="Save a File",
        defaultextension=".txt"
        )
    filename.config(mode='w')  ------------> **This is line 25**

    pathh.insert(END, filename)
    data = str(txtarea.get(1.0, END))
    filename.write(data)
    filename.close()


Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1264.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1921, in __call__
    return self.func(*args)
  File "c:\Users\kurt\Documents\Scripts\TKinter\fileExplorerReadFile.py", line 25, in saveFiles
    filename.config(mode='w')
AttributeError: '_io.TextIOWrapper' object has no attribute 'config'

错误是说 asksaveasfile 方法返回的对象没有 config 方法。

tkinter.filedialog.asksaveasfile(mode='w', **options)¶ Create a SaveAs dialog and return a file object opened in write-only mode.

当您调用 asksaveasfile 方法时,它会自动 returns 一个处于 写入模式 的文件对象,因此无需任何进一步的配置写入文件。如果您要省略引发错误的行,您的代码应该会按预期方式工作。