使用 Python 合并 CSV 文件集

175 阅读3分钟

您有一组 2000 个 CSV 文件,您想将它们合并成一个文件。这些文件具有相同的格式,并且您希望将每个标识符(前六位代码)的所有文件合并成一个文件。

  1. 解决方案

您可以使用 Python 的 csv 模块来合并 CSV 文件。该模块提供了一个简单的 API 来读取和写入 CSV 文件。

以下是如何使用 csv 模块合并 CSV 文件集的示例代码:

import csv
import glob

# 获取要合并的文件列表
filenames = glob.glob('*.csv')

# 创建一个新的 CSV 文件来存储合并后的数据
with open('merged.csv', 'w', newline='') as merged_file:
    # 创建一个 CSV 写入器
    csv_writer = csv.writer(merged_file)

    # 循环遍历要合并的文件
    for filename in filenames:
        # 打开要合并的文件
        with open(filename, 'r') as csv_file:
            # 创建一个 CSV 阅读器
            csv_reader = csv.reader(csv_file)

            # 循环遍历要合并的文件中的每一行
            for row in csv_reader:
                # 将当前行写入合并后的文件中
                csv_writer.writerow(row)

这段代码将打开所有要合并的文件,并将其逐行写入合并后的文件中。合并后的文件将保存在 merged.csv 文件中。

您还可以使用 csv 模块来合并具有不同格式的文件。以下是如何使用 csv 模块合并具有不同格式的文件的示例代码:

import csv
import glob

# 获取要合并的文件列表
filenames = glob.glob('*.csv')

# 创建一个新的 CSV 文件来存储合并后的数据
with open('merged.csv', 'w', newline='') as merged_file:
    # 创建一个 CSV 写入器
    csv_writer = csv.writer(merged_file)

    # 循环遍历要合并的文件
    for filename in filenames:
        # 打开要合并的文件
        with open(filename, 'r') as csv_file:
            # 创建一个 CSV 阅读器
            csv_reader = csv.reader(csv_file)

            # 获取文件的头信息
            header = next(csv_reader)

            # 将文件的头信息写入合并后的文件中
            csv_writer.writerow(header)

            # 循环遍历要合并的文件中的每一行
            for row in csv_reader:
                # 将当前行写入合并后的文件中
                csv_writer.writerow(row)

这段代码将打开所有要合并的文件,并将其逐行写入合并后的文件中。合并后的文件将保存在 merged.csv 文件中。

您还可以使用 csv 模块来合并具有不同分隔符的文件。以下是如何使用 csv 模块合并具有不同分隔符的文件的示例代码:

import csv
import glob

# 获取要合并的文件列表
filenames = glob.glob('*.csv')

# 创建一个新的 CSV 文件来存储合并后的数据
with open('merged.csv', 'w', newline='') as merged_file:
    # 创建一个 CSV 写入器
    csv_writer = csv.writer(merged_file)

    # 循环遍历要合并的文件
    for filename in filenames:
        # 打开要合并的文件
        with open(filename, 'r') as csv_file:
            # 创建一个 CSV 阅读器
            csv_reader = csv.reader(csv_file, delimiter=',')

            # 获取文件的头信息
            header = next(csv_reader)

            # 将文件的头信息写入合并后的文件中
            csv_writer.writerow(header)

            # 循环遍历要合并的文件中的每一行
            for row in csv_reader:
                # 将当前行写入合并后的文件中
                csv_writer.writerow(row)

这段代码将打开所有要合并的文件,并将其逐行写入合并后的文件中。合并后的文件将保存在 merged.csv 文件中。