python中怎么实现分批定量读取文件内容,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
一、文件内容的分发
应用场景:分批读取共有358086行内容的txt文件,每取1000条输出到一个文件当中
# coding=utf-8
# 分批读取共有358086行内容的txt文件,每取1000条输出到一个文件当中
txt_path = "E:/torrenthandle.txt"
base_path="E:/torrent_distribution/"
def distribution( ):
f = open(txt_path,"r")
lines = f.readlines()
f2=open(base_path+"1.txt","w")
content=""
for i in range( 1,len(lines) ):
if ( i%1000!=0 ):
content+=lines[i-1]
else:
content+=lines[i-1]
f2.write(content.strip('\n'))
block_path=base_path+str(i)+".txt"
f2=open(block_path,"w")
content=""
#最后的扫尾工作
content+=lines[i]
f2.write(content.strip('\n'))
f2.close()
f.close()
distribution( )
二、文件夹(目录)下的内容分发
应用场景:分批读取目录下的文件,每取1000条输出到一个新的目录当中
# coding: utf-8
import os
import shutil
sourcepath = "E:\\sample"
distribution_path = "E:\\sample\\distribution\\"
if __name__ =='__main__':
rs = unicode(sourcepath , "utf8")
count = 1
savepath = unicode(distribution_path+"1", "utf-8")
if not os.path.exists(savepath):
os.makedirs(savepath)
for rt,dirs,files in os.walk(rs):
for fname in files:
if ( count%1000!=0 ):
shutil.copy(rt + os.sep + fname,savepath)
#os.remove(rt + os.sep + fname)
else:
shutil.copy(rt + os.sep + fname,savepath)
#os.remove(rt + os.sep + fname)
savepath = unicode(distribution_path+str(count), "utf-8")
if not os.path.exists(savepath):
os.makedirs(savepath)
count+=1
看完上述内容,你们掌握python中怎么实现分批定量读取文件内容的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注天达云行业资讯频道,感谢各位的阅读!