Python读取文本文件无输出问题求助:添加if-else后无内容输出
文件读取无输出的原因及解决方法
问题出在文件指针的位置变化:
- 执行
file.read()时,会一次性读取整个文件的全部内容,同时将文件内部的指针移动到文件末尾。 - 进入else分支后,再用
for line in file遍历文件时,指针已经停在末尾,没有剩余内容可以读取,所以不会有任何输出。
解决方法
方法1:先保存文件内容,再判断处理
把读取的内容存入变量,后续直接使用该变量完成判断和遍历,避免指针移动问题:
with open("This.txt",'r') as file: content = file.read() if content == '': print("File empty") else: # 按行拆分内容并输出 for line in content.splitlines(): print(line)
方法2:重置文件指针到开头
在else分支中,用file.seek(0)将指针移回文件起始位置,再执行遍历:
with open("This.txt",'r') as file: if file.read()=='': print("File empty") else: file.seek(0) # 将指针重置到文件开头 for line in file: print(line)
方法3:更高效的直接遍历判断
先把文件内容转为列表,既能判断是否为空,又能直接遍历输出,逻辑更简洁:
with open("This.txt",'r') as file: lines = list(file) if not lines: print("File empty") else: for line in lines: print(line)
内容的提问来源于stack exchange,提问作者Nikhil Kumar
相关产品推荐
相关产品推荐

