将分割的文件进行合并

来源:互联网 发布:excel表格数据求和为0 编辑:程序博客网 时间:2024/06/07 01:25
#!/usr/bin/env python3import os,sys,timereadsize=1024j='=' def join(fromdir,tofile):        if os.path.exists(tofile):                os.remove(os.path.join(fromdir,tofile))        output=open(tofile,'wb')        parts=os.listdir(fromdir)        parts.sort()        pars=len(parts)        i=0        for filename in parts:                i+=1                filepath=os.path.join(fromdir,filename)                fileobj=open(filepath,'rb')                while True:                        filebytes=fileobj.read(readsize)                        if not filebytes:                                break                        output.write(filebytes)                fileobj.close()                perbar(i,pars)        output.close()        print('文件合并完成') def perbar(i,pars):        global j        sys.stdout.write('文件正在合并:||'+('%s'+'%'+str((138-len(j)))+'s')%(j,'['+str(int(i/pars*100))+']')+'\r')        sys.stdout.flush()        time.sleep(0.01)        j += '=' if __name__=='__main__':        if len(sys.argv) == 2 and sys.argv[1] == '-help':                print('usage: join-file.py [from-dirname to-filename]')        else:                if len(sys.argv) != 3:                        interactive=True                        fromdir=input('请输入存储块的目录:')                        tofile=input('请输入合并后的文件名:')                else:                        interactive = False                        fromdir,tofile=sys.argv[1:]                absfrom,absto=map(os.path.abspath,[fromdir,tofile])                print('合并',absfrom,'到文件',absto)                 try:                        join(fromdir,absto)                except:                        print('合并文件发生错误异常')                        print(sys.exc_info()[0],sys.exc_info()[1])                else:                        print('文件合并结果:',absto)                if interactive: input('请输入enter键')

0 0