Python 来自 txt 文件的 Tkinter 列表框输入多行显示在一行中
Python Tkinter listbox input from txt file multiple lines are showing in one line
我的问题很简单。我正在根据以下代码将我的列表框保存到 txt 文件中:
def file_save():
global filename
if filename == '':
filename = filedialog.asksaveasfile(mode='w', defaultextension=".txt")
if filename is not None:
for i in textentry.get(0,END):
filename.write(i+"\n")
我的列表框包含多行,例如
aa
bb
cc
我的 txt 输出也是这样。
但是当我将此 txt 文件加载到我的空列表框中时。它显示
aabbcc
我的加载代码如下:
def file_open():
global filename
filename = filedialog.askopenfile(mode='r+', filetypes =[('Txt', '*.txt')])
if filename is not None:
t = filename.read()
textentry.delete(0, 'end')
for item in t:
textentry.insert(END, item)
#textentry.insert(END, t)
textentry.focus()
我尝试添加 for item in t:
,结果显示
a
a
b
...
textentry.insert(END, t)
显示 aabbcc
我需要将加载的 txt 文件显示为
aa
bb
cc
谢谢
使用readlines
代替read
:
from tkinter import filedialog, Listbox, Tk
top = Tk()
textentry = Listbox(top)
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)
textentry.focus()
textentry.pack()
top.mainloop()
我的问题很简单。我正在根据以下代码将我的列表框保存到 txt 文件中:
def file_save():
global filename
if filename == '':
filename = filedialog.asksaveasfile(mode='w', defaultextension=".txt")
if filename is not None:
for i in textentry.get(0,END):
filename.write(i+"\n")
我的列表框包含多行,例如
aa
bb
cc
我的 txt 输出也是这样。
但是当我将此 txt 文件加载到我的空列表框中时。它显示
aabbcc
我的加载代码如下:
def file_open():
global filename
filename = filedialog.askopenfile(mode='r+', filetypes =[('Txt', '*.txt')])
if filename is not None:
t = filename.read()
textentry.delete(0, 'end')
for item in t:
textentry.insert(END, item)
#textentry.insert(END, t)
textentry.focus()
我尝试添加 for item in t:
,结果显示
a
a
b
...
textentry.insert(END, t)
显示 aabbcc
我需要将加载的 txt 文件显示为
aa
bb
cc
谢谢
使用readlines
代替read
:
from tkinter import filedialog, Listbox, Tk
top = Tk()
textentry = Listbox(top)
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)
textentry.focus()
textentry.pack()
top.mainloop()