Python读取TXT文件时while循环为何持续运行无法终止?
问题原因
你的代码陷入了无限循环,且未处理文件读取结束的情况:
while True是无条件循环,没有终止逻辑,程序会一直持续运行- 当
f.readline()读到文件末尾时,会返回空字符串"",但循环仍会继续执行print(line),此时打印的全是空行,看起来终端像黑屏无输出 - 此外
f.close()永远不会被执行到,因为循环根本停不下来
修复方法
你需要在循环里判断是否读到文件末尾,一旦读完就终止循环,同时推荐用with语句自动管理文件(无需手动关闭,更安全):
修复后的代码
def get_line(filepath): # with语句会在代码块结束后自动关闭文件 with open(filepath, "r") as f: while True: line = f.readline() # 空字符串表示已读到文件末尾,跳出循环 if not line: break print(line, end="") # 避免重复换行,因为readline会保留每行的换行符 print("Start...") get_line("/path/to/file/textfile.txt") print("Stop...")
更简洁的写法
Python中文件对象本身是可迭代的,直接遍历即可,无需手动调用readline:
def get_line(filepath): with open(filepath, "r") as f: for line in f: print(line, end="") print("Start...") get_line("/path/to/file/textfile.txt") print("Stop...")
内容的提问来源于stack exchange,提问作者A.Sim
相关产品推荐
相关产品推荐

