Python对csv文件的某一列进行拆分+再写入保存

  • 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • ️‍ 博客主页:一晌小贪欢的博客主页

  • 该系列文章专栏:Python办公自动化专栏

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正

  • ❤️ 欢迎各位佬关注! ❤️

背景

之前我写过Excel文件的按某列拆分,大家可以查看,这个小工具写的还是非常不错的:点我查看,今天我们写一个CSV文件的拆分。

注意事项

column_index = 4 # 替换为你想要根据哪一列进行拆分的索引,记住从0开始,主要就是这一行代码

f_w.writerow([这里写上你拆分后csv文件的表头,是一个列表])

目录结构:

文件夹【数据源】:存放你待拆分的csv文件

文件夹【数据源拆分结果】:拆分结果存放

Python对csv文件的某一列进行拆分+再写入保存_第1张图片

完整版代码如下:

# -*- coding: utf-8 -*-
'''
@作者    :一晌小贪欢
'''


import csv
import os


def split_csv_by_column(csv_file, column_index):
    # 创建一个空字典用于存储拆分后的数据
    split_data = {}

    with open(csv_file, 'r',encoding='utf-8') as file:
        reader = csv.reader(file)
        header = next(reader)  # 获取CSV文件的头部

        for row in reader:
            # 获取该行对应列的值
            column_value = row[column_index]

            if column_value not in split_data:
                # 如果字典中没有当前列值作为key,则创建一个新的列表并将行添加到列表中
                split_data[column_value] = [row]
            else:
                # 如果字典中已经有当前列值的列表,则直接将行添加到该列表中
                split_data[column_value].append(row)

    return split_data

csv_file = './数据源/'+os.listdir('./数据源/')[0]  # 替换为你的CSV文件路径
column_index = 4  # 替换为你想要根据哪一列进行拆分的索引

result = split_csv_by_column(csv_file, column_index)

# 打印拆分结果
for key, value in result.items():
    print(f"拆分后的数据,列'{key}':")
    with open(f"./数据源拆分结果/{key}.csv",'w',encoding='utf-8',newline='') as f_w:
        f_w = csv.writer(f_w)
        f_w.writerow([这里写上你拆分后csv文件的表头,是一个列表])
        for row in value:
            # print(row)
            f_w.writerow(row)

        print('=========')

希望对大家有帮助

致力于办公自动化的小小程序员一枚#

都看到这了,关注+点赞+收藏=不迷路!!

如果你想知道更多关于Python办公自动化的知识各位大佬给个关注吧!

你可能感兴趣的:(Python自动化办公,python,数据库,开发语言,办公自动化,excel)