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

Python访问根目录上两级文件及遍历子目录CSV转DataFrame方法

Python路径访问与CSV遍历处理方案

1. 访问根目录上两级路径的文件

你可以用Python内置的os模块或更现代的pathlib模块实现,两种方式都简单直接:

方法1:使用os.path模块

通过路径拼接和绝对路径转换实现向上跳转:

import os

# 获取当前脚本所在目录的上两级路径
two_levels_up = os.path.abspath(os.path.join(os.getcwd(), "../../"))
# 拼接目标文件的完整路径
target_file = os.path.join(two_levels_up, "target_file.txt")

# 读取文件内容
with open(target_file, "r") as f:
    content = f.read()

方法2:使用pathlib(Python 3.4+推荐)

面向对象的语法更简洁直观:

from pathlib import Path

# 获取当前脚本的绝对路径
current_script = Path(__file__).resolve()
# 向上跳转两级目录
two_levels_up = current_script.parent.parent
# 拼接目标文件路径
target_file = two_levels_up / "target_file.txt"

# 读取文件内容
content = target_file.read_text()

2. 遍历指定目录结构读取并处理CSV文件

针对你描述的Root Folder -> SubX -> FX -> FileX.csv结构,可结合目录遍历工具与pandas实现批量读取处理:

方法1:使用os.walk遍历

import os
import pandas as pd

# 指定根目录路径
root_dir = "/path/to/your/Root Folder"

# 遍历所有目录层级
for root, dirs, files in os.walk(root_dir):
    # 仅处理根目录下的第二层子目录(Root是第0层,SubX是第1层,FX是第2层)
    if root.count(os.sep) == root_dir.count(os.sep) + 2:
        for file in files:
            if file.endswith(".csv"):
                csv_path = os.path.join(root, file)
                # 读取CSV为DataFrame
                df = pd.read_csv(csv_path)
                # 在这里添加你的自定义处理逻辑
                print(f"正在处理文件:{csv_path}")
                print(df.head())

方法2:使用pathlib的glob匹配

from pathlib import Path
import pandas as pd

# 指定根目录路径
root_dir = Path("/path/to/your/Root Folder")

# 精准匹配根目录下两层子目录中的CSV文件
for csv_path in root_dir.glob("*/*/*.csv"):
    df = pd.read_csv(csv_path)
    # 自定义处理逻辑
    print(f"正在处理文件:{csv_path}")
    print(df.describe())

如果你的目录结构中,SubX下只有FX这一层子目录,也可以用root_dir.rglob("*.csv")匹配所有CSV,但*/*/*.csv能避免误匹配其他层级的CSV文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:40:23