Python tkinter 保存和更改 txt 文件

Python tkinter save and change txt file

我的程序只是要求创建一个新的 txt 文件,或者如果它存在,程序会保存它。

def file_open():
    global filename
    filename = filedialog.askopenfile(mode='r+', filetypes =[('Txt', '*.txt')])
    if filename is not None:
        t = filename.readlines()
        textentry.delete(0, 'end')
        for item in t:
            textentry.insert(END, item)

我正在将现有的 txt 文件打开到我的列表框中。

我对文本做了一些调整后,我正在保存它,但我只能添加新的项目到txt。当我删除一个时,我的输出 txt 没有更新。

def file_save():
    global filename
    if filename == '':
        filename = filedialog.asksaveasfile(mode='w', defaultextension=".txt")
    if filename is not None:
        f = open(filename, "w")
        for i in textentry.get(0,'end'):
            f.write(i+"\n")

注意:textentry 是一个 ListBox 小部件 我尝试使用此代码进行保存,但没有成功。当我单击保存按钮时,它应该只是将列表框条目获取到 txt。

希望你能帮助我。谢谢

假设 textentry 是一个 tkinter.Listbox 小部件,您可以使用它:

def file_open():
    global filename
    filename = filedialog.askopenfilename(filetypes=(("Text files", "*.txt"), ))
    if filename != "":
        with open(filename, "r") as file:
            data = file.read()
        textentry.delete(0, "end")
        for line in data.split("\n"):
            textentry.insert("end", line)

def file_save():
    global filename
    if filename == "":
        filename = filedialog.asksaveasfilename(defaultextension=".txt")
    if filename != "":
        with open(filenname, "w") as file:
            file.write("\n".join(textentry.get(0, "end")))

您的代码的问题是您的 filename 变量包含文件句柄而不是文件名 str