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
。
我的程序只是要求创建一个新的 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
。