#!/usr/bin/env python3
import os,sys,time
readsize=1024
j='='
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键')
将分割的文件进行合并
最新推荐文章于 2023-05-07 00:24:56 发布