首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何按行数拆分(.csv)文件,但保留每个拆分子文件上的第一行(列标题)?python

在Python中,可以使用csv模块来处理.csv文件,并按行数拆分文件并保留每个拆分子文件上的第一行(列标题)。下面是一个示例代码:

代码语言:txt
复制
import csv
import os

def split_csv_file(input_file, output_dir, rows_per_file):
    # 创建输出目录
    os.makedirs(output_dir, exist_ok=True)

    with open(input_file, 'r', newline='') as file:
        reader = csv.reader(file)
        header = next(reader)  # 读取第一行(列标题)

        file_index = 1
        row_count = 0
        output_file = None

        for row in reader:
            # 如果达到指定的行数,创建一个新的拆分子文件
            if row_count % rows_per_file == 0:
                if output_file:
                    output_file.close()
                output_file = open(os.path.join(output_dir, f'output_{file_index}.csv'), 'w', newline='')
                writer = csv.writer(output_file)
                writer.writerow(header)  # 写入列标题到每个拆分子文件
                file_index += 1

            writer.writerow(row)
            row_count += 1

        if output_file:
            output_file.close()

# 示例用法
input_file = 'input.csv'  # 输入文件路径
output_dir = 'output'  # 输出目录路径
rows_per_file = 1000  # 每个拆分子文件的行数

split_csv_file(input_file, output_dir, rows_per_file)

上述代码中,split_csv_file函数接受输入文件路径、输出目录路径和每个拆分子文件的行数作为参数。它首先创建输出目录,然后使用csv.reader读取输入文件的内容。通过迭代读取每一行数据,并根据指定的行数进行拆分,将每个拆分子文件的第一行写入列标题,然后将每一行数据写入相应的拆分子文件中。

请注意,上述代码仅提供了一个基本的示例,你可以根据实际需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券