Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter保存和更改txt文件_Python_Tkinter_Save_Txt - Fatal编程技术网

Python tkinter保存和更改txt文件

Python tkinter保存和更改txt文件,python,tkinter,save,txt,Python,Tkinter,Save,Txt,我的程序只是要求创建一个新的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')

我的程序只是要求创建一个新的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是一个列表框小部件 我试图保存这段代码,但没有成功。当我单击save按钮时,它只需将listbox条目转换为txt


我希望你能帮助我。谢谢

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

def文件_open():
全局文件名
filename=filedialog.askopenfilename(文件类型=(“文本文件”,“*.txt”),)
如果文件名!="":
打开(文件名为“r”)作为文件:
data=file.read()
textentry.delete(0,“结束”)
对于数据中的行。拆分(“\n”):
textentry.insert(“结束”,第行)

def file_save():
全局文件名
如果文件名==“”:
filename=filedialog.asksaveasfilename(defaultextension=“.txt”)
如果文件名!="":
打开(filenname,“w”)作为文件:
file.write(“\n”.join(textentry.get(0,“end”))

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

文件名。请在写入(
f.close()
)后尝试关闭文件。
textentry
tkinter.Text
小部件吗?您还知道,
filename
变量包含一个文件句柄,而不是文件名。谢谢,但是我的文本条目是一个列表框widget@AliCan乔班,我想我已经解决了。第61行,在文件中,用open(filename,“w”)保存为file:TypeError:expected str,bytes或os.PathLike对象,不是TextIOWrapper它显示了这个错误@TheLizzardId你完全复制了我的代码吗?我想你要么错过了
askopenfilename
要么错过了
asksaveasfilename
。请注意这些函数名末尾的
名称
。我遗漏了该部分,但当我复制完整代码时,单击“打开文件”按钮时无法打开文件。它给了我_tkinter.TclError:bad option“-mode”:必须是-defaultextension、-filetypes、-initialdir、-initialfile、-multiple、-parent、-title或-typevariable