Python 如何自动遍历文件下所有的文件,然后再对每一个文件夹读取里面的csv文件

咖啡陪你 / 2023-08-16 / 原文

Python 如何自动遍历文件下所有的文件,然后再对每一个文件夹读取里面的csv文件:
代码:

import os
import csv

# 设置要遍历的文件夹路径
folder_path = "your_folder_path"

# 遍历文件夹
for root, dirs, files in os.walk(folder_path):
    # 遍历当前文件夹下的所有文件
    for filename in files:
        # 判断是否为csv文件
        if filename.endswith(".csv"):
            file_path = os.path.join(root, filename)
            # 读取csv文件内容
            with open(file_path, 'r') as csv_file:
                csv_reader = csv.reader(csv_file)
                for row in csv_reader:
                    print(row)

并将所有结果合并为一个dataframe输出:

import os
import glob
import pandas as pd

# 定义要遍历的文件夹路径和输出文件路径
folder_path = "path/to/folder"
output_file = "path/to/output.csv"

# 定义一个空的DataFrame用于存储所有数据
all_data = pd.DataFrame()

# 遍历文件夹下的所有子文件夹
for subdir in os.listdir(folder_path):
    subdir_path = os.path.join(folder_path, subdir)
    if os.path.isdir(subdir_path):
        # 获取子文件夹下的所有csv文件路径
        csv_files = glob.glob(os.path.join(subdir_path, "*.csv"))
        # 遍历csv文件并添加到all_data DataFrame中
        for file_path in csv_files:
            data = pd.read_csv(file_path)
            all_data = pd.concat([all_data, data])

# 将最终结果输出到一个csv文件中
all_data.to_csv(output_file, index=False)