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()