在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年龄:28n城市:北京" print(text)
输出效果是:
姓名:张三 年龄:28 城市:北京
- 不用
print()多次拼接,结构更清晰 - 如果后续要写入文件或传给 API,带
n的字符串也更容易保持格式 - 注意:windows 下部分老程序期望
rn,纯n可能显示异常(比如记事本)
从文件读出来的字符串可能自带 n,别重复添加
用 file.readline() 或 file.readlines() 读取时,每行末尾默认就含 n。如果再手动加,就会多出空行。
立即学习“Python免费学习笔记(深入)”;
-
line = f.readline()→line值可能是"hellon" - 错误写法:
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 写入rn,其他系统写n - 强制写
n:open("f.txt", "w", newline="")→ 关闭通用换行符转换 - 读取时统一处理:
open("f.txt", "r", newline="")→ 不把rn转成n,适合二进制或协议解析场景
多数情况不用管,但做配置生成、网络协议、或需要严格匹配换行符时,newline 很关键。