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

Python中去掉换行符,最常用、最直接的方法是用字符串的 strip()、rstrip() 或 replace() 方法,具体选哪个取决于你的需求:是要去掉开头结尾的换行、只去右边、还是全文替换所有换行符。
去掉字符串首尾的换行符和空白(推荐常用)
strip() 会同时移除字符串开头和结尾的所有空白字符(包括 \n、\r、\t 和空格),适合读取文件行或用户输入后做清洗:
text = "\n hello world \r\n" clean = text.strip() # → "hello world"
- 如果只要去掉右边(比如读文件时每行末尾的
\n),用 rstrip('\n') 更精准; - 用 rstrip() 不带参数,也会去掉所有尾部空白,包括
\n、\r、\t; - 若只去左边,对应的是 lstrip()。
去掉字符串中所有的换行符(包括中间的)
用 replace() 可以把任意位置的换行符替换成空字符串或其他字符:
text = "line1\nline2\r\nline3"
no_newlines = text.replace('\n', '').replace('\r', '')
# 或一步写成:text.replace('\r\n', '').replace('\n', '').replace('\r', '')
-
\r\n是 Windows 换行,\n是 Linux/macOS,\r较少见但某些老系统存在; - 如果想统一转为空格,可写
text.replace('\n', ' ').replace('\r', ' '); - 正则
re.sub(r'[\r\n]+', ' ', 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', '') 可能漏掉 \r\n。稳妥做法是:
- 用
strip()或rstrip()处理首尾 —— 它们默认识别所有空白; - 全文替换时,显式处理
\r\n、\n、\r三者; - 或借助
os.linesep(当前系统换行符),但仅适用于生成文本,不适用于清理未知来源字符串。











