tkinter和python3.x按钮配置

tkinter和python3.x按钮配置,python,tkinter,config,Python,Tkinter,Config,我正在尝试将字符串写入文本。代码如下: def retrieve_input(): inputValue = textBox.get("1.0", "end-1c") c = inputValue def open(): f = open("writetest.txt", "a") def write_input(): f.write(c) filemenu.add_command(label="Write t

我正在尝试将字符串写入文本。代码如下:

def retrieve_input():
    inputValue = textBox.get("1.0", "end-1c")
    c = inputValue

    def open():
        f = open("writetest.txt", "a")

        def write_input():
            f.write(c)

filemenu.add_command(label="Write to txt", command=lambda:retrieve_input())

我尝试了很多方法,但都没有成功,整个代码很长,也不漂亮,我试图学习有关写入和加载的命令。

我不确定您的缩进是否与您的帖子中的缩进相同,但这里有一个更简洁的方法:

def retrieve_input():
    inputValue = textBox.get("1.0", "end-1c")
    c = inputValue

    with open("writetest.txt", "a") as f:
        f.write(c)
我去掉了所有没有真正理由使用的函数。此外,我选择使用带有指令的
来处理文件

此外,您的功能可能要短得多:

def write_input():
    with open("writetest.txt", 'a') as f:
        f.write(textBox.get("1.0", "end-1c"))
请注意,您正在打开该文件,但之后没有关闭它。这可能导致内存泄漏。将
块与
块一起使用可以防止发生此类情况,因为它会自动关闭文件。另外,在您的代码中,
textBox
未定义,因此您需要将其作为参数传递,或者将其声明为
global
(避免后者)。

什么是“不成功”的意思?是否写入了错误的数据?没有写入数据吗?函数是否没有被调用?程序崩溃了吗?您是否检查了
open
方法内部的
c
值,以验证它是否是您认为应该的值?这是
retrieve\u input
功能的全部代码吗?您定义了
open
,但没有调用它。