在Python中,\n仅在普通字符串中生效实现换行,原始字符串r""中\n仅为字面量;print()默认结尾加\n,手动插入\n可控制多处换行;读文件时行尾已含\n,勿重复添加;跨平台写入应关注open的newline参数。

Python字符串里写 \n 就能换行,但得注意单双引号和原始字符串
直接在字符串中写 \n 是最常用的方式,但它只在**普通字符串(非 raw string)** 中生效。如果你用的是 r"..." 这种原始字符串,\n 就只是两个字符,不会触发换行。
- 普通双引号:
"第一行\n第二行"→ 实际输出两行 - 普通单引号:
'第一行\n第二行'→ 效果一样 - 原始字符串:
r"第一行\n第二行"→ 输出就是“第一行\n第二行”,没换行
print() 自动加换行,但 \n 可以控制多处换行位置
print() 默认末尾加一个 \n,所以连续调用会分行。但如果你想在一行字符串里控制多个断点(比如表格、日志格式),就得手动插 \n。
text = "姓名:张三\n年龄:28\n城市:北京" print(text)
输出效果是:
姓名:张三 年龄:28 城市:北京
- 不用
print()多次拼接,结构更清晰 - 如果后续要写入文件或传给 API,带
\n的字符串也更容易保持格式 - 注意:Windows 下部分老程序期望
\r\n,纯\n可能显示异常(比如记事本)
从文件读出来的字符串可能自带 \n,别重复添加
用 file.readline() 或 file.readlines() 读取时,每行末尾默认就含 \n。如果再手动加,就会多出空行。
立即学习“Python免费学习笔记(深入)”;
-
line = f.readline()→line值可能是"hello\n" - 错误写法:
print(line + "\n")→ 输出空行 - 正确写法:
print(line, end="")或print(line.rstrip("\n")) - 写入文件时同理:如果内容已含
\n,f.write(s)就够了,别再f.write(s + "\n")
跨平台处理换行符:优先用 \n,写文件时考虑 newline 参数
Python 内部统一用 \n 表示换行,无论系统是 Windows、macOS 还是 Linux。真正影响换行符写入的是打开文件时的 newline 参数。
- 默认行为:
open("f.txt", "w")→ 在 Windows 写入\r\n,其他系统写\n - 强制写
\n:open("f.txt", "w", newline="")→ 关闭通用换行符转换 - 读取时统一处理:
open("f.txt", "r", newline="")→ 不把\r\n转成\n,适合二进制或协议解析场景
多数情况不用管,但做配置生成、网络协议、或需要严格匹配换行符时,newline 很关键。










