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