最常用方法是strip()、rstrip()或replace():strip()去首尾空白(含换行),rstrip(‘n’)精准去右换行,replace()可替换所有位置的换行符。

python中去掉换行符,最常用、最直接的方法是用字符串的 strip()、rstrip() 或 replace() 方法,具体选哪个取决于你的需求:是要去掉开头结尾的换行、只去右边、还是全文替换所有换行符。
去掉字符串首尾的换行符和空白(推荐常用)
strip() 会同时移除字符串开头和结尾的所有空白字符(包括 n、r、t 和空格),适合读取文件行或用户输入后做清洗:
text = "n hello world rn" clean = text.strip() # → "hello world"
- 如果只要去掉右边(比如读文件时每行末尾的
n),用 rstrip(‘n’) 更精准; - 用 rstrip() 不带参数,也会去掉所有尾部空白,包括
n、r、t; - 若只去左边,对应的是 lstrip()。
去掉字符串中所有的换行符(包括中间的)
用 replace() 可以把任意位置的换行符替换成空字符串或其他字符:
text = "line1nline2rnline3" no_newlines = text.replace('n', '').replace('r', '') # 或一步写成:text.replace('rn', '').replace('n', '').replace('r', '')
-
rn是 windows 换行,n是 linux/macOS,r较少见但某些老系统存在; - 如果想统一转为空格,可写
text.replace('n', ' ').replace('r', ' '); - 正则
re.sub(r'[rn]+', ' ', text)更灵活,适合复杂场景(如合并多换行为一个空格)。
读文件时自动避免换行符
用 file.readline() 或循环读取时,每行默认带末尾 n。可以边读边处理:
立即学习“Python免费学习笔记(深入)”;
with open("file.txt") as f: for line in f: line = line.rstrip('n') # 只去右边换行,保留左边空格 print(line)
-
readlines()返回的列表里每行都含n,建议改用for line in f:这种方式更省内存; -
pathlib.Path("file.txt").read_text().splitlines()会自动按行分割且不带换行符,非常简洁。
注意跨平台兼容性
不同系统换行符不同,单靠 .replace('n', '') 可能漏掉 rn。稳妥做法是:
- 用
strip()或rstrip()处理首尾 —— 它们默认识别所有空白; - 全文替换时,显式处理
rn、n、r三者; - 或借助
os.linesep(当前系统换行符),但仅适用于生成文本,不适用于清理未知来源字符串。