python对csv数据分段并保存
时间: 2024-01-18 11:04:26 浏览: 42
以下是一个Python程序,可以将CSV文件中的数据按照指定的段数进行分段,并将每个段保存到一个新的CSV文件中。
```python
import csv
# 定义分段函数
def segment_csv(filename, num_segments):
# 打开CSV文件
with open(filename, 'r') as f:
reader = csv.reader(f)
# 读取CSV文件头
header = next(reader)
# 计算每个段的大小
segment_size = sum(1 for row in reader) // num_segments
# 重新定位文件指针到文件头
f.seek(0)
next(reader)
# 循环读取CSV文件并分段保存
for i in range(num_segments):
# 打开新的CSV文件
with open(f'{filename}_{i}.csv', 'w', newline='') as f_new:
writer = csv.writer(f_new)
# 写入文件头
writer.writerow(header)
# 读取并写入数据
for j in range(segment_size):
try:
row = next(reader)
writer.writerow(row)
except StopIteration:
break
# 调用分段函数
segment_csv('data.csv', 3)
```
此程序首先打开CSV文件并读取文件头,然后计算每个段的大小。接着,程序重新定位文件指针到文件头并跳过文件头行。然后,程序循环读取CSV文件并分段保存到新的CSV文件中。最后,程序调用分段函数并传入CSV文件名和分段数。在此示例中,分段数为3,因此将CSV文件分为3个段,并将每个段保存到一个新的CSV文件中。新文件名将在原文件名后添加下划线和段数。例如,第一个分段将保存到“data_0.csv”。