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

Python如何无需硬编码路径读取项目文件夹内所有CSV文件

解决方案

核心思路是动态获取当前脚本的所在路径,自动拼接csv文件夹的相对路径,完全不需要硬编码固定路径,项目任意移动都能正常运行。

方法1:使用os模块(兼容性最好)

适配所有Python版本,自动兼容不同操作系统的路径分隔符:

import os
import glob
import pandas as pd

# 获取当前脚本所在的绝对路径,即ProjectFolder的根路径(假设脚本放在ProjectFolder根目录下)
base_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接csvFolder路径
path = os.path.join(base_dir, 'csvFolder')

all_files = glob.glob(os.path.join(path, "*.csv"))

df_mm = pd.concat((pd.read_csv(f, usecols=["[mm]"]) for f in all_files),
               axis = 1, ignore_index = True)

如果你的脚本存放在ProjectFolder的子目录中,比如ProjectFolder/src/run.py,只需要多嵌套一层os.path.dirname()即可向上跳转一级目录,调整到匹配你文件结构的层级即可。

方法2:使用pathlib(Python3.4+推荐,写法更简洁)

面向对象的路径处理方式,语法更直观:

from pathlib import Path
import glob
import pandas as pd

# 直接获取当前脚本所在目录,拼接csvFolder路径
base_dir = Path(__file__).absolute().parent
path = base_dir / 'csvFolder'

# 两种读取文件方式二选一即可
all_files = glob.glob(str(path / "*.csv"))
# 纯pathlib写法:all_files = list(path.glob("*.csv"))

df_mm = pd.concat((pd.read_csv(f, usecols=["[mm]"]) for f in all_files),
               axis = 1, ignore_index = True)

两种方案都支持跨Windows、macOS、Linux系统运行,不需要手动修改路径分隔符,项目任意移动位置都不需要调整代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:09:03