Jupyter Notebook调用read_csv()报找不到文件,加r前缀生效原因是什么
Python路径字符串加
r前缀的核心原因 这是Python字符串转义规则导致的问题,具体原理如下:
- 普通Python字符串中,
\是默认的转义字符,会和紧跟其后的字符组合成特殊转义序列,例如\n代表换行、\t代表制表符、\r代表回车、\u开头会被识别为Unicode编码前缀等。 - Windows系统的文件路径默认用
\作为路径分隔符,如果你直接写普通字符串形式的路径,例如"C:\users\dan\data\test.csv",Python解析时会自动把其中的\u、\d、\t等组合当做转义序列处理,最终得到的实际路径和你填写的原始路径完全不一致,自然会抛出文件不存在的报错。 - 字符串前加的
r是*原始字符串(Raw String)*标记,作用是告诉Python关闭转义解析,把字符串里的\直接当做普通字面量字符处理,你写的路径内容是什么样,Python解析后得到的就是什么样,自然就能正确识别到目标文件。
效果对比示例
普通字符串路径解析效果:
path = "C:\test\name.csv" print(path) # 输出结果: # C: est # ame.csv
加r的原始字符串路径解析效果:
path = r"C:\test\name.csv" print(path) # 输出结果:C:\test\name.csv
同类替代方案
如果不想加r前缀,也可以用两种方式避免转义问题:
- 把路径里的所有反斜杠
\替换为正斜杠/:"C:/test/name.csv" - 把每个反斜杠都手动转义为双反斜杠
\\:"C:\\test\\name.csv"
注意:原始字符串语法不允许以单个
\结尾,属于Python固有语法限制,碰到该场景可以单独在末尾拼接"\\"处理。
内容的提问来源于stack exchange,提问作者danaran12
相关产品推荐
相关产品推荐

