使用readlines()方法时如何去除输出中的\n换行符?
使用readlines()读取文件并输出无多余换行符的内容
问题说明
在Linux Ubuntu系统中使用readlines()读取文本文件时,输出会以包含\n换行符的列表形式呈现,而需要的是逐行正常显示的纯文本内容。
解决方案
以下方法均严格使用readlines()方法,实现目标输出:
方法1:逐行遍历去除换行符
循环遍历readlines()返回的列表,用rstrip('\n')仅移除每行末尾的换行符(保留行内空格)后打印:
f = open('/home/user/Desktop/my_file', 'r') for line in f.readlines(): print(line.rstrip('\n')) f.close()
若需移除每行首尾所有空白字符(含空格、制表符),可替换为print(line.strip())。
方法2:直接拼接列表元素
用join()将列表元素拼接为完整字符串,因每个元素自带换行符,直接打印即可,添加end=''避免print()额外输出换行:
f = open('/home/user/Desktop/my_file', 'r') print(''.join(f.readlines()), end='') f.close()
推荐写法:用with语句自动管理文件
with语句会自动关闭文件,避免资源泄漏,更安全规范:
with open('/home/user/Desktop/my_file', 'r') as f: for line in f.readlines(): print(line.rstrip('\n'))
原理说明
readlines()会读取文件所有行,将每行(含末尾\n)作为字符串存入列表返回。上述方法要么主动移除换行符,要么利用元素自带的换行符,实现了符合要求的纯文本输出。
内容的提问来源于stack exchange,提问作者Dorrin Samadian
相关产品推荐
相关产品推荐

