You need to enable JavaScript to run this app. 字符串拼接时的转义字符问题:读取CSV报FileNotFoundError
优惠活动
大模型
产品
解决方案
定价
更多

字符串拼接时的转义字符问题:读取CSV报FileNotFoundError

FileNotFoundError 排查与修复方案

核心问题根因

你当前遇到的报错,最直接的来源是手动拼接路径时缺失目录与文件名之间的分隔符。
原代码的路径拼接逻辑为:

Read_this_file = "\\folder1\folder2"+max(filename_list)

基础路径字符串"\\folder1\folder2"的末尾没有携带Windows路径必需的反斜杠分隔符,直接拼接文件名后会生成完全无效的路径,举个实际拼接效果:

base_path = r"\\folder1\folder2"
target_name = "sales_202406.csv"
wrong_path = base_path + target_name
# 实际拼出的错误路径:\\folder1\folder2sales_202406.csv
# 正确路径应为:\\folder1\folder2\sales_202406.csv

你提到给字符串加r(原始字符串)前缀也没有解决问题,本质是r前缀仅会关闭字符串内的转义解析(比如让\t不被识别为制表符),并不能自动补全路径所需的分隔符,因此无法解决拼接逻辑本身的缺陷。

标准解决方法

  • 放弃手动拼接路径字符串,直接使用Python标准库的os.path.join方法组合目录与文件名,该方法会自动适配操作系统补全对应分隔符,彻底避免拼接粘黏的问题。在你原有代码基础上仅修改路径拼接逻辑即可:
    import os
    import pandas
    
    Files_in_folder = os.listdir(r"\\folder1\folder2")
    Filename_list = []
    
    for filename in Files_in_folder:
        if "sometext" in filename:
             Filename_list.append(filename)
    
    # 自动补充分隔符生成完整有效路径
    Read_this_file = os.path.join(r"\\folder1\folder2", max(Filename_list))
    Data = pandas.read_csv(Read_this_file,sep=',')
    

辅助排查技巧

  • 拼接完目标路径后,先通过print(Read_this_file)打印实际生成的路径值,将其复制到系统资源管理器的地址栏中,验证是否能正常打开对应文件,如果无法打开,逐段对比打印路径与实际文件的真实路径差异。
  • 检查文件名中是否存在首尾不可见的空格、换行等特殊字符,这类字符会导致匹配的文件名和实际文件名产生差异,可通过filename.strip()对筛选出的文件名做首尾空白清理后再存入列表。
  • 确认目标文件的读取权限:虽然os.listdir可以正常列出目录下的文件,但如果具体目标文件没有读取权限,部分场景下也会抛出FileNotFoundError而非专属的权限报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 12:06:04