使用路径带变量的df.to_csv导出csv时报FileNotFoundError怎么解决
问题解决思路
报错核心原因
你遇到的FileNotFoundError本质是拼接后的文件路径不符合Windows系统规则,或者路径对应的目录不存在。之前硬编码out.csv作为文件名时没有问题,是因为文件名固定,不存在违规字符或额外路径层级,路径可以被系统正常识别。常见的报错触发原因有2个:
DataName变量中包含Windows文件名禁止使用的特殊字符(\ / : * ? " < > |),或包含路径分隔符,导致系统把文件名片段识别为不存在的子目录- 部分版本Python的
fr字符串拼接UNC网络路径(\\开头的共享路径)时可能出现解析异常,加上文件名变量的干扰更容易出现路径识别错误
可直接使用的修复方案
你可以按以下步骤修改代码,同时兼容多文件名导出和路径合法性校验:
- 先对数据源名称做非法字符清洗,避免文件名违规
- 用
os.path.join拼接路径替代直接字符串拼接,减少路径解析错误 - 提前校验存储目录是否存在,不存在则自动创建
修复后的完整代码如下:
import os import re # 你的原有数据处理逻辑 df = MyFunction(DataName) # 存储路径配置 save_dir = r'\\kant\kjemi-u1\izarc\pc\Desktop' # 目录不存在则自动创建 if not os.path.exists(save_dir): os.makedirs(save_dir) # 清洗文件名中的非法字符,全部替换为下划线 clean_data_name = re.sub(r'[\\/*?:"<>|]', "_", DataName) # 拼接完整存储路径 save_path = os.path.join(save_dir, f"{clean_data_name}.csv") # 导出csv df.to_csv(save_path, index=True, header=True)
校验排查方法
如果修改后仍然报错,可以在导出代码前加一行打印语句,确认拼接后的路径是否符合预期:
print(save_path)
打印出的路径如果有明显的多余分隔符、特殊字符,就可以对应调整DataName的取值逻辑。
内容的提问来源于stack exchange,提问作者Izar Capel
相关产品推荐
相关产品推荐

