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

使用变量作为文件路径创建pandas DataFrame时遇到问题

问题分析与解决

核心问题

你遇到的错误根本不是双斜杠的锅,而是**os.listdir()返回的只是单纯的文件名,不是完整路径**。当你调用os.path.abspath(file)时,它会把当前工作目录和文件名拼在一起,而不是你指定的files_path目录。这就导致pandas找错了地方,自然报文件不存在的错误。

解决方案

方法1:用os.path.join拼出正确路径

直接把目标文件夹路径和文件名拼接,得到真正的完整路径:

import os
import pandas as pd

df = pd.DataFrame()
ctr = 0
files_path = "你的目标文件夹路径"
str_tr = "要匹配的字符串"

for file in os.listdir(files_path):
    if str_tr in file:
        # 关键:把文件夹路径和文件名拼起来,得到正确的文件路径
        full_path = os.path.join(files_path, file)
        # 可以先打印确认路径是否正确
        # print(full_path)
        df[ctr] = pd.read_excel(full_path)
        ctr += 1

方法2:用pathlib(更简洁的现代写法)

Python 3.4及以上版本推荐用pathlib模块,路径处理更直观,还能避免很多拼接错误:

from pathlib import Path
import pandas as pd

df = pd.DataFrame()
ctr = 0
files_path = Path("你的目标文件夹路径")
str_tr = "要匹配的字符串"

# 直接遍历文件夹下的所有完整路径
for file_path in files_path.iterdir():
    if str_tr in file_path.name:
        df[ctr] = pd.read_excel(file_path)
        ctr += 1

补充说明

  • 双斜杠在Python路径里是正常的,不管是转义后的\\还是用r前缀的原始字符串,pandas都能正确识别,所以你一开始的判断错了。
  • 要是不确定路径对不对,在读取文件前先打印出来看看,确认是不是指向你要找的那个文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:25:26