python实现案列拆分csv文件
时间: 2023-07-31 22:11:10 浏览: 56
以下是一个Python实现的CSV文件拆分案例:
假设我们有一个名为“data.csv”的CSV文件,其中包含10万行数据。我们要将它拆分成10个文件,每个文件包含1万行数据。
```python
import os
import csv
# 源文件路径
input_file = 'data.csv'
# 拆分后的文件夹路径
output_folder = 'output'
# 每个文件包含的行数
rows_per_file = 10000
# 创建输出文件夹
if not os.path.exists(output_folder):
os.mkdir(output_folder)
# 读取源文件
with open(input_file, 'r') as f:
# 使用csv模块读取csv文件
reader = csv.reader(f)
# 跳过标题行
next(reader)
# 初始化计数器和文件编号
count = 0
file_num = 1
# 创建第一个输出文件
output_file = os.path.join(output_folder, f'data_{file_num}.csv')
with open(output_file, 'w', newline='') as f_out:
writer = csv.writer(f_out)
# 写入标题行
writer.writerow(['id', 'name', 'age'])
# 遍历源文件中的每一行数据
for row in reader:
# 写入当前行数据到输出文件
writer.writerow(row)
# 计数器加1
count += 1
# 如果计数器达到指定的行数,创建一个新的输出文件
if count == rows_per_file:
# 重置计数器
count = 0
# 增加文件编号
file_num += 1
# 创建新的输出文件
output_file = os.path.join(output_folder, f'data_{file_num}.csv')
with open(output_file, 'w', newline='') as f_out:
writer = csv.writer(f_out)
# 写入标题行
writer.writerow(['id', 'name', 'age'])
```
这个程序会读取“data.csv”文件中的数据,并将它们写入到多个输出文件中。每个输出文件包含指定数量的行数,最后一个文件可能会少于指定数量的行数。输出文件名的格式为“data_1.csv”,“data_2.csv”,以此类推。