r 是原始字符串前缀,使反斜杠不作转义处理,避免路径如"C:\new\test.txt"被误解析;常用于正则表达式和文件路径;但结尾不能为单个反斜杠,且r"\r"表示两个字符而非回车符。
Python 中的 r 是字符串字面量前缀,表示“原始字符串”(raw string),它的作用是让字符串里的反斜杠 \ 不再被当作转义字符处理。
普通字符串中,\n 表示换行,\t 表示制表符,\\ 才表示一个真正的反斜杠。但像 Windows 路径 "C:\new\test.txt" 会出问题——\n 和 \t 被解释为换行和制表,导致路径错误或报错。
加 r 就能避免这种误解:
r"C:\new\test.txt" → 完全按字面意思理解:C 盘下有个 new 文件夹,里面是 test.txtr"\n\t\\\\" → 就是四个字符:\、n、\、t、\、\、\、\
最典型的是正则表达式和文件路径:
\d、\w、\\,用 r"\d+\.\d+" 比 "\\d+\\.\\d+" 清晰得多open(r"C:\data\log.txt") 更安全,不用反复写双反斜杠C:\path,用 r"C:\\path" 或更简洁的 r"C:\path"(注意结尾不能是单个 \)原始字符串不是万能的,有两个关键限制:
r"abc\" 是语法错误(因为引号前的 \ 仍试图转义引号)r"\r" 是两个字符 \ 和 r,不是回车符;而 "\r" 才是真正的回车控制字符别把字符串前缀 r 和转义序列 \r 混了:
\r 是
字符串内部的一个转义序列,代表“回车”控制符(光标回到行首)r"\r" → 字符串内容是反斜杠 + r;"\r" → 字符串内容是一个回车符