一种简单的方法是使用类跟踪行,并在需要时写入新文件(例如,self.max\u row
)
例如:
import csv
class MyCSV:
def __init__(self):
self.max_row = 10
self.cur_row = 0
self.file_number = 0
self.file_handle = None
def write_row(self, row):
if self.cur_row >= self.max_row or self.file_handle == None:
self.cur_row = 0
self.file_number += 1
if self.file_handle:
self.file_handle.close()
self.file_handle = open(f'output_{self.file_number:04}.csv', 'w', newline='')
self.csv_handle = csv.writer(self.file_handle)
self.csv_handle.writerow(row)
self.cur_row += 1
my_csv = MyCSV()
for row in range(1000): # create some simulated rows
output_row = [row, "value1", "value2"]
my_csv.write_row(output_row)
这将创建每个文件包含10行的形式output_0001.csv
的输出文件名。显然你可以根据需要调整这个。
您还可以使用csv。而不是DictWriter()
,并为每行传递字典。