在Python中,可以使用csv模块来处理.csv文件,并按行数拆分文件并保留每个拆分子文件上的第一行(列标题)。下面是一个示例代码:
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
读取输入文件的内容。通过迭代读取每一行数据,并根据指定的行数进行拆分,将每个拆分子文件的第一行写入列标题,然后将每一行数据写入相应的拆分子文件中。
请注意,上述代码仅提供了一个基本的示例,你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云