从源文件中读取数据写入另一个文件中,每个文件满1万行,就换一个文件。

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))

你可能感兴趣的:(从源文件中读取数据写入另一个文件中,每个文件满1万行,就换一个文件。)