欢迎访问宙启技术站
智能推送

如何在Python中合并和拆分CSV文件

发布时间:2023-12-26 23:16:53

在Python中合并和拆分CSV文件是非常常见的任务,可以使用CSV模块来处理这些操作。CSV模块提供了一种简单的方法来读写CSV文件,以及对文件进行合并和拆分的功能。

合并CSV文件的方法:

1. 打开所有要合并的CSV文件:使用csv.reader函数打开每个文件,并创建一个CSV读取器对象。

2. 创建一个新的合并文件:使用csv.writer函数创建一个新的CSV写入器对象,并指定要写入的文件。

3. 逐行读取原始文件并写入合并文件:对于每个原始文件,使用读取器对象的next()函数跳过标题行,然后使用writerow()函数将其余行逐行写入合并文件。

下面是一个合并CSV文件的示例代码:

import csv

# 要合并的文件列表
file_list = ['file1.csv', 'file2.csv', 'file3.csv']

# 创建合并文件对象
merged_file = open('merged.csv', 'w', newline='')
writer = csv.writer(merged_file)

# 逐个打开原始文件并合并
for file in file_list:
    # 打开原始文件对象
    original_file = open(file, 'r')
    reader = csv.reader(original_file)

    # 跳过标题行
    next(reader)

    # 逐行写入合并文件
    for row in reader:
        writer.writerow(row)

    # 关闭原始文件对象
    original_file.close()

# 关闭合并文件对象
merged_file.close()

拆分CSV文件的方法:

1. 打开原始CSV文件:使用csv.reader函数打开原始文件,并创建一个CSV读取器对象。

2. 创建多个新的拆分文件:使用csv.writer函数为每个拆分文件创建一个新的CSV写入器对象。

3. 逐行读取原始文件并根据需要写入拆分文件:对于每一行,根据特定的条件选择相应的拆分文件,然后将当前行写入选定的拆分文件。

下面是一个拆分CSV文件的示例代码:

import csv

# 原始文件
original_file = open('original.csv', 'r')
reader = csv.reader(original_file)

# 拆分文件列表
split_files = {'category1.csv': ['A', 'B'],
               'category2.csv': ['C', 'D'],
               'category3.csv': ['E', 'F']}

# 创建多个拆分文件对象
writers = {}
for file in split_files.keys():
    split_file = open(file, 'w', newline='')
    writers[file] = csv.writer(split_file)

# 逐行读取原始文件并写入拆分文件
for row in reader:
    for file, criteria in split_files.items():
        if row[0] in criteria:
            writers[file].writerow(row)

# 关闭所有文件对象
original_file.close()
for writer in writers.values():
    writer.close()

这是一个简单的示例,介绍了如何在Python中合并和拆分CSV文件。根据实际需求,你可以根据需要对代码进行修改和优化。使用CSV模块可以快速方便地处理CSV文件的合并和拆分操作。