为什么Python没有进入For循环以插入列表框?
简单地说,我正在使用Tkinter作为图形界面,并希望:为什么Python没有进入For循环以插入列表框?,python,tkinter,text-files,Python,Tkinter,Text Files,简单地说,我正在使用Tkinter作为图形界面,并希望: 读取文本文件 打印“测试”以确保一切顺利进行 清除当前列表框 用文本文件中的每一行填充列表框 打印“另一个测试”以确保我已经完成了这一步 with open("chat.txt", "a+") as chat: print("test") listbox.delete(first=0, last="END") for x in ch
with open("chat.txt", "a+") as chat:
print("test")
listbox.delete(first=0, last="END")
for x in chat:
listbox.insert("END", x)
print("another test")
“测试”可以打印,但“另一个测试”不能打印。首先,必须将文件光标放在文件的开头。或者按照上面的建议使用
r+
模式
第二,大写的变量通常指从tkinter导入的常量
from tkinter import *
root = Tk()
listbox = Listbox(root)
listbox.pack(expand=True, fill='both', padx=10, pady=10)
with open("chat.txt", "a+") as chat:
print("test")
listbox.delete(first=0, last=END)
chat.seek(0) # Position file cursor at beginning of file
for x in chat:
listbox.insert(END, x)
print("another test")
在
a+
模式下打开文件会将文件指针放在文件的末尾,因此没有任何内容可读取。那么,我应该使用哪一个?我认为它是最好的,因为它允许读、写,如果还没有新的文件,就可以创建一个新的文件。要读取现有的文件内容并编写新的内容,请使用r+
。问题中没有任何内容表明需要写入该文件。只需使用open(“chat.txt”)
。这可能是个坏主意。如果他不明白为什么“a+”
将指针留在文件的末尾开始,那么如果指针提前移动,他可能会无意中覆盖文件的某些部分。