Python读取Makefile仅输出首行,如何实现完整内容读取?
问题分析
你的代码只输出第一行的原因是:file.readline().rstrip()会将空行转换为空字符串,而while循环的判断条件依赖该字符串的布尔值——空字符串被视为False,导致遇到第一个空行时循环直接终止,后续内容无法输出。
解决方案
下面提供几种可行的实现方式:
方法1:一次性读取全部内容
最简洁的方式,直接读取文件所有内容并打印:
with open("Makefile", "r") as file: print(file.read())
方法2:逐行读取并保留空行
通过判断是否读到文件末尾来终止循环,而非依赖行内容的布尔值:
with open("Makefile", "r") as file: while True: line = file.readline() if not line: # 读到文件末尾时终止 break print(line.rstrip('\n')) # 仅去除换行符,保留空行的结构
方法3:遍历文件对象(推荐)
Python中文件对象可直接迭代,这种写法更符合Python风格:
with open("Makefile", "r") as file: for line in file: print(line.rstrip('\n'))
内容的提问来源于stack exchange,提问作者Saad Hasan
相关产品推荐
相关产品推荐

