如何用Python从自动生成的文件夹中提取CSV文件
提取自动生成文件夹中的CSV文件(Python实现)
下面提供几种实用的Python实现方式,按需选择:
方法一:os模块遍历+csv模块读取
适合基础场景,无需额外依赖:
import os import csv # 替换为自动生成文件夹的父目录路径 root_dir = "/path/to/parent/folder" # 遍历所有子文件夹及文件 for dirpath, _, filenames in os.walk(root_dir): for filename in filenames: # 判断是否为CSV文件 if filename.endswith(".csv"): csv_path = os.path.join(dirpath, filename) print(f"正在读取文件: {csv_path}") # 读取CSV内容 with open(csv_path, mode='r', encoding='utf-8') as f: reader = csv.reader(f) # 获取表头 headers = next(reader) print(f"表头: {headers}") # 遍历每一行数据 for row in reader: # 这里可按需处理每行数据,比如存入列表或进行计算 print(row)
方法二:pathlib模块(Python3.4+)
更简洁的现代路径处理方式:
from pathlib import Path import csv root_dir = Path("/path/to/parent/folder") # 递归查找所有CSV文件 for csv_path in root_dir.rglob("*.csv"): print(f"正在读取文件: {csv_path}") with open(csv_path, mode='r', encoding='utf-8') as f: reader = csv.DictReader(f) # 以字典形式读取,可直接通过表头键名取值 for row in reader: # 示例:获取指定列的值 print(row["列名1"], row["列名2"])
方法三:pandas批量读取(适合数据分析场景)
如果需要批量合并或分析CSV数据,pandas效率更高:
import pandas as pd from pathlib import Path root_dir = Path("/path/to/parent/folder") csv_files = list(root_dir.rglob("*.csv")) # 批量读取所有CSV并合并为一个DataFrame dfs = [] for csv_path in csv_files: df = pd.read_csv(csv_path, encoding='utf-8') dfs.append(df) combined_df = pd.concat(dfs, ignore_index=True) # 查看合并后的数据前5行 print(combined_df.head()) # 可选:将合并后的数据保存为新CSV combined_df.to_csv("combined_data.csv", index=False, encoding='utf-8')
注意事项
- 若CSV文件编码非utf-8,可尝试指定
encoding='gbk'或encoding='utf-8-sig'解决乱码问题 - 确保
root_dir路径正确,尽量使用绝对路径避免找不到文件 os.walk和rglob都会自动递归遍历所有子目录,无需额外处理多层文件夹
内容的提问来源于stack exchange,提问作者dev
相关产品推荐
相关产品推荐

