首页
学习
活动
专区
工具
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读取输入文件的内容。通过迭代读取每一行数据,并根据指定的行数进行拆分,将每个拆分子文件的第一行写入列标题,然后将每一行数据写入相应的拆分子文件中。

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

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

相关·内容

Python处理CSV文件(一)

CSV(comma-separated value,逗号分隔值)文件格式是一种非常简单的数据存储与分享方式。CSV 文件将数据表格存储为纯文本,表格(或电子表格)中的每个单元格都是一个数值或字符串。与 Excel 文件相比,CSV 文件的一个主要优点是有很多程序可以存储、转换和处理纯文本文件;相比之下,能够处理 Excel 文件的程序却不多。所有电子表格程序、文字处理程序或简单的文本编辑器都可以处理纯文本文件,但不是所有的程序都能处理 Excel 文件。尽管 Excel 是一个功能非常强大的工具,但是当你使用 Excel 文件时,还是会被局限在 Excel 提供的功能范围内。CSV 文件则为你提供了非常大的自由,使你在完成任务的时候可以选择合适的工具来处理数据——如果没有现成的工具,那就使用 Python 自己开发一个!

01
  • 领券