python如何去掉换行符

最常用方法是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。可以边读边处理:

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(当前系统换行符),但仅适用于生成文本,不适用于清理未知来源字符串。