我想在csv文件中编写一些随机样本数据,直到它达到1GB大为止。以下代码正在工作:使用Python编写大型CSV文件的最快方法
import numpy as np
import uuid
import csv
import os
outfile = 'data.csv'
outsize = 1024 # MB
with open(outfile, 'ab') as csvfile:
wtr = csv.writer(csvfile)
while (os.path.getsize(outfile)//1024**2) < outsize:
wtr.writerow(['%s,%.6f,%.6f,%i' % (uuid.uuid4(), np.random.random()*50, np.random.random()*50, np.random.randint(1000))])
如何让它更快?
为什么你用numpy标记这个问题,但不要使用它(它不需要随机数)?为什么要创建一个csv-writer但每行只写一个字符串?没有给出,文件大小在文件未关闭时更新。自己计算大小,不要使用'getsize',也要快得多。 – Daniel