python文件分块

import sys,os
kilobytes =1024
megabytes = kilobytes*1000
chunksize =int(200*megabytes)#default chunksize
def split(fromfile,todir,chunksize=chunksize):
    if not os.path.exists(todir):#check whether todir exists or not
        os.mkdir(todir)
    else:
        for fnamein os.listdir(todir):
            os.remove(os.path.join(todir,fname))
    partnum =0
    inputfile =open(fromfile,'rb')#open the fromfile
    while True:
        chunk = inputfile.read(chunksize)
        if not chunk:#check the chunk is empty
            break
        partnum +=1
        filename = os.path.join(todir,('part%04d'%partnum))
        fileobj =open(filename,'wb')#make partfile
        fileobj.write(chunk)#write data into partfile
        fileobj.close()
    return partnum
if __name__=='__main__':
        fromfile  =input('File to be split?')
        todir    =input('Directory to store part files?')
        chunksize =int(input('Chunksize to be split?'))
        absfrom,absto =map(os.path.abspath,[fromfile,todir])
        print('Splitting',absfrom,'to',absto,'by',chunksize)
        try:
            parts = split(fromfile,todir,chunksize)
        except:
            print('Error during split:')
            print(sys.exc_info()[0],sys.exc_info()[1])
        else:
            print('split finished:',parts,'parts are in',absto)

File to be split?输入要分块的文件
Directory to store part files?输入存放分块的文件夹
Chunksize to be split?输入每个分块的大小

你可能感兴趣的:(python文件分块)