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

无法读取不同路径下的文件:基于文件名日期读取CSV的代码问题

问题分析

你的代码失效的核心原因是glob路径拼接错误:你用and运算符连接路径和文件名模式,这在Python中是逻辑运算而非路径拼接。比如r'G:\New folder' and date_6_1会直接返回date_6_1的值,相当于只在当前工作目录(Notebook所在文件夹)查找文件,自然找不到其他路径下的目标文件。

修正方案

你需要把路径和文件名模式正确拼接成完整的搜索路径,推荐两种可靠方式:

方式1:使用os.path.join(兼容所有操作系统)

import pandas as pd
import glob
import os

date_6 = '2024-05-15'
# 生成文件名模式:*20240515.csv(用replace替代切片更简洁)
date_6_1 = f"*{date_6.replace('-', '')}.csv"
# 正确拼接路径与文件名模式
search_path = os.path.join(r'G:\New folder', date_6_1)

# 遍历匹配文件(用列表存储避免覆盖)
df_list = []
for file in glob.glob(search_path):
    df = pd.read_csv(file)
    df_list.append(df)

# 单个文件直接取第一个,多个文件可合并
df = pd.concat(df_list) if df_list else None

方式2:使用pathlib(现代路径处理方案)

import pandas as pd
from pathlib import Path

date_6 = '2024-05-15'
date_pattern = f"*{date_6.replace('-', '')}.csv"
# 定义目标文件夹路径
target_dir = Path(r'G:\New folder')

# 查找所有匹配文件
df_list = []
for file in target_dir.glob(date_pattern):
    df = pd.read_csv(file)
    df_list.append(df)

df = pd.concat(df_list) if df_list else None
额外提示

原代码中循环直接赋值df = pd.read_csv(file)会导致最后仅保留最后一个文件的数据,建议用列表存储所有文件的DataFrame,再按需合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:27:06