1)方法一(读一行写一行):
#encoding=utf-8
import time
startTime =time.time()
with open(r"E:\工作\1010同时做任务\源数据.csv",'r') as fp:
for i in range(5):
count=0
while count<10000:#每个文件写入1万条数据就写入另一个文件
data = fp.readline().strip()
with open(r"E:\工作\1010同时做任务\测试数据"+str(i+1)+".csv",'a+') as fq:
fq.write(data+"\n")
count+=1
print("已创建第%s个文件"%str(i+1))
endTime = time.time()
print("共花费%s秒"%str(int(endTime-startTime)))
2)方法二(读取所有需要的数据到列表中,分批写入):
#encoding=utf-8
import time
startTime =time.time()
从源文件中读取数据写入另一个文件中,每个文件满1万行,就换一个文件。这里我想到的两种实现方式:
1)读取数据存到列表中,将列表中数据存到文件中,每写入1万条数据便换一个文件
2)每读出一条数据便写入到新的文件中,每个文件满1万条数据就换一个文件写。
#encoding=utf-8
with open(r"E:\工作\1010同时做任务\源数据.csv",'r') as fp:
data=[]
while 1:
data.append(fp.readline().strip())
if len(data)>=50000:
break
for i in range(0,5):
with open(r"E:\工作\1010同时做任务\测试数据"+str(i+6)+".csv",'w') as fp:
startNum = i*10000
for j in data[startNum:startNum+10000:]:
#每次读1万条
fp.write(j+"\n")
print("已创建第%s个文件"%str(i+1))
endTime = time.time()
print("共花费%s秒"%str(endTime-startTime))