Python读取文本文件输出含多余空行问题求助
解决读取IP文件时输出多余空行的问题
问题原因
你碰到的多余空行,本质是双重换行符在搞鬼:文件里的每一行末尾自带一个换行符(\n),而Python的print()函数默认会在输出结束后再追加一个换行符,两者叠加就出现了空行。
几种快速解决方法
方法1:用strip()去除首尾空白字符
这个方法会把每行首尾的所有空白(包括换行符、空格、制表符)都去掉,完全适配IP地址这种没有首尾空白的场景:
file = open('ip.txt', 'r') for line in file: print(line.strip()) file.close() # 记得手动关闭文件,或者用下面的with语句更省心
方法2:让print()不追加默认换行符
通过end=''参数告诉print函数不要添加默认的换行符,只保留文件行本身的换行:
with open('ip.txt', 'r') as file: # 用with语句会自动关闭文件,是更推荐的写法 for line in file: print(line, end='')
方法3:用splitlines()读取无换行符的行列表
一次性读取文件所有内容,按换行分割成不带换行符的字符串列表,再遍历打印:
with open('ip.txt', 'r') as file: ip_list = file.read().splitlines() for ip in ip_list: print(ip)
验证效果
用上面任意一种方法,输出都会变成你期望的样子:
OUTPUT:
X.X.X.X
Y.Y.Y.Y
另外建议养成用with语句操作文件的习惯,它会自动处理文件的关闭,避免资源泄漏哦~
内容的提问来源于stack exchange,提问作者UsualSuspect7




