我想在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