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

Python如何遍历文件夹内所有CSV文件并批量转换为JSON文件

批量转换文件夹内CSV到JSON的实现方案

核心实现思路

  • 引入Python内置的文件路径处理模块os,不需要额外安装第三方依赖,即可完成文件夹遍历、路径拼接、后缀名替换的操作。
  • 保留原有已经调试通过的单文件转换核心逻辑,不需要重写CSV、JSON读写部分,只需要在外层加一层文件遍历循环即可。
  • 遍历目标文件夹时,筛选后缀名为.csv的文件(可兼容.CSV大写后缀的情况),自动为每个CSV文件生成同名的JSON输出路径,避免手动逐个配置文件名。
  • 注意修复原有脚本的小bug:原convert_write_json函数里连续两次写入JSON内容,会导致生成的JSON文件格式非法,删掉第二次写入的代码即可。

修改后的可运行代码

import csv
import json
import os

# 配置要处理的目标文件夹路径,替换为自己的文件夹路径即可
target_folder = '/users/krzysztofpaszta/CSVtoGD/'

# 原有CSV读取逻辑,不需要改动核心逻辑,补充了编码声明避免乱码
def read_CSV(file, json_file):
    csv_rows = []
    with open(file, encoding='utf-8') as csvfile:
        reader = csv.DictReader(csvfile)
        field = reader.fieldnames
        for row in reader:
            csv_rows.append({field[i]:row[field[i]] for i in range(len(field))})
        convert_write_json(csv_rows, json_file)

# CSV转JSON写入逻辑,修复了重复写入的bug,补充编码配置
def convert_write_json(data, json_file):
    with open(json_file, "w", encoding='utf-8') as f:
        f.write(json.dumps(data, sort_keys=False, indent=4, separators=(',', ': '), ensure_ascii=False))

# 遍历文件夹执行批量处理
if __name__ == '__main__':
    for filename in os.listdir(target_folder):
        # 筛选所有CSV格式文件,兼容大写后缀
        if filename.lower().endswith('.csv'):
            # 拼接CSV文件完整路径
            csv_full_path = os.path.join(target_folder, filename)
            # 自动生成对应JSON文件路径:将.csv后缀替换为.json
            json_filename = os.path.splitext(filename)[0] + '.json'
            json_full_path = os.path.join(target_folder, json_filename)
            # 调用转换函数
            read_CSV(csv_full_path, json_full_path)
            print(f"转换完成:{filename} -> {json_filename}")

可选扩展说明

  • 如果需要同时处理目标文件夹下所有子文件夹里的CSV文件,把遍历部分的os.listdir换成os.walk即可实现递归遍历。
  • 代码中添加的encoding='utf-8'和ensure_ascii=False参数可以避免中文、特殊字符乱码,如果你的CSV是其他编码(比如gbk),把encoding参数改成对应编码即可。
  • 原有代码中导入了pandas但没有实际使用,如果不需要其他pandas功能可以删掉这个导入,减少不必要的依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:51:15