有个任务,就是将一个大的csv分割为几个小的csv,当然是的包含表头的。
于是,我想到了类似于,用双指针来做。
import csv
import os
path = '/Users/mac/Desktop/186_3.csv'
with open(path, 'r', newline='') as file:
csvreader = csv.reader(file)
a = next(csvreader)
print(a)
i = j = 1
for row in csvreader:
print(row)
print(f'i is {i}, j is {j}')
# 没1000个就j加1, 然后就有一个新的文件名
if i % 1000 == 0:
j += 1
print(f"csv {j} 生成成功")
csv_path = os.path.join('/'.join(path.split('/')[:-1]), '186_3/' + str(j) + '.csv')
# print('/'.join(path.split('/')[:-1]))
print(csv_path)
# 不存在此文件的时候,就创建
if not os.path.exists(csv_path):
with open(csv_path, 'w', newline='') as file:
csvwriter = csv.writer(file)
csvwriter.writerow(['image_url'])
csvwriter.writerow(row)
i += 1
# 存在的时候就往里面添加
else:
with open(csv_path, 'a', newline='') as file:
csvwriter = csv.writer(file)
csvwriter.writerow(row)
i += 1

本文介绍了一种使用Python将大型CSV文件分割成多个较小CSV文件的方法。通过双指针技术,每达到预设行数(例如1000行),就创建一个新的文件,并确保每个文件都包含表头。该过程涉及读取源文件,检查目标文件是否存在,以及决定是在现有文件中追加还是创建新文件。
6080

被折叠的 条评论
为什么被折叠?



