如何去除Python代码运行后输出末尾的意外换行符?
问题分析
你的代码里有两个问题导致末尾出现多余换行:
- 用
f.split("\n")拆分文件内容时,如果原文件末尾带有换行符,会在拆分后的列表最后生成一个空字符串。循环执行print(word_new)时,会给这个空字符串也加上默认的换行,最终多出一行空白。 word.rstrip("\n")完全无效——因为split("\n")已经把换行符作为分隔符剔除了,拆分后的每个元素里根本不存在换行符。
解决方法
给你几个可行的方案:
方案1:直接迭代文件对象(最简洁安全)
不需要一次性读取整个文件,直接循环文件对象即可自动按行读取,同时用with语句能自动关闭文件:
with open("/home/pride_and_prejudice.txt") as f: for line in f: print(line.rstrip("\n"))
方案2:过滤空字符串
如果坚持用原读取方式,循环时判断内容非空再打印:
f = open("/home/pride_and_prejudice.txt").read() for word in f.split("\n"): if word: print(word)
方案3:用splitlines()替代split("\n")
splitlines()会自动适配不同系统的换行符,且不会在末尾生成空字符串:
f = open("/home/pride_and_prejudice.txt").read() for line in f.splitlines(): print(line)
内容的提问来源于stack exchange,提问作者Ching Man
相关产品推荐
相关产品推荐

