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
相关产品推荐
相关产品推荐

