读取文本文件并输出全大写内容时出现多余空行的问题求助
解决Python读取文件打印时出现多余空行的问题
嘿,这个问题我之前也踩过坑!问题根源出在readlines()和print()的换行行为冲突上:
当你用readlines()读取文件时,它会把每一行(包括行尾的换行符\n)都作为列表的一个元素存起来。而Python的print()函数默认在输出内容后会自动追加一个换行符,这样一来,每行就相当于有两个换行符(一个来自文件,一个来自print()),自然就出现了多余的空行。
给你几个可行的解决方案:
方案1:修改print的end参数
直接取消print()默认的额外换行,让它只输出读取到的内容(包含文件里的换行符):
file = open("STORY.TXT", 'r') string = file.readlines() for x in string: print(x.upper(), end='') # end=''告诉print不要额外加换行 file.close()
方案2:移除每行的换行符
先把读取到的每行末尾的\n去掉,再转大写打印,这样print()自动添加的换行就刚好符合需求:
file = open("STORY.TXT", 'r') string = file.readlines() for x in string: print(x.strip('\n').upper()) # 只去掉换行符,保留行内其他空格 file.close()
方案3:更简洁的写法(推荐)
用with语句读取整个文件内容,一次性处理并打印,不仅代码更简洁,还能自动帮你关闭文件,避免忘记关闭的问题:
with open("STORY.TXT", 'r') as file: content = file.read() print(content.upper())
这样运行后就能得到你期望的没有多余空行的输出啦!
内容的提问来源于stack exchange,提问作者Sahil Panhalkar




