You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Windows系统下pd.read_csv的文件路径内无法使用变量?

报错与高亮异常的根源

你遇到的两个问题本质是同一个原因:Windows默认的路径分隔符\是Python的字符串转义字符,触发了语法错误:

  • 你写的路径字符串末尾为14mm\'+test_var,这里的\'会被Python识别为「转义单引号」,表示该单引号是字符串的内容,而非字符串的结束标记。Python扫描到行尾都找不到闭合的单引号,就会抛出EOL while scanning string literal报错。
  • 编辑器的语法高亮逻辑和Python语法规则一致,识别到前面的字符串没有正常闭合,就会把本该是变量的test_var也判定为字符串内容显示为绿色,直到遇到.csv前的单引号才判定字符串结束,因此只有.csv显示为黑色。

之前的尝试无效的原因

  • 给路径加r前缀(原始字符串)没有用:Python的原始字符串语法规则明确禁止末尾单独放反斜杠,加r后你写的r'...14mm\''还是会被判定为未闭合的字符串,报错不变。
  • 加'rb'参数没有用:pandas.read_csv默认读取文本格式的csv文件,rb是二进制读取模式,传入后会拿到字节对象无法解析csv内容,属于参数误用。

可行解决方案

方案1:替换所有反斜杠为正斜杠

Python在Windows环境下完全兼容正斜杠作为路径分隔符,不会触发转义问题,修改最简单:

prelim = pd.read_csv('C:/Users/Edwardtx/Downloads/Tomsstuff/data_pp_kvals/test2/Inner/14mm/'+test_var+'.csv')

方案2:转义所有反斜杠

把路径中所有\写成\\,明确表示这是路径分隔符而非转义字符:

prelim = pd.read_csv('C:\\Users\\Edwardtx\\Downloads\\Tomsstuff\\data_pp_kvals\\test2\\Inner\\14mm\\'+test_var+'.csv')

方案3(更推荐):用路径拼接工具实现跨平台兼容

用Python标准库的pathlib拼接路径,完全不用考虑不同系统的路径分隔符差异,写法更简洁不易出错:

from pathlib import Path
import pandas as pd

needle_size = '14mm_'
Pressure = '5mb'
test_var = needle_size + Pressure

base_path = Path(r'C:\Users\Edwardtx\Downloads\Tomsstuff\data_pp_kvals\test2\Inner\14mm')
prelim = pd.read_csv(base_path / f"{test_var}.csv")

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:09:03