將分割的檔案進行合併

2021-07-10 00:19:48 字數 1575 閱讀 3359

#!/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=0for 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鍵')

檔案的合併與分割

檔案的合併與分割其實比較簡單,分割時將乙個大檔案按二進位制方式讀取,然後按二進位制寫成乙個個小檔案。合併時就把小檔案順次讀取,再寫入乙個大檔案。下面是乙個簡單的例子 檔案分割,二進位制讀取 void cmyupdatedlg onbinary byte buf 140000 緩衝區 dword dw...

檔案分割合併功能

檔案分割合併功能public partial class form1 form 選擇檔案 事件 private void btn selfile click object sender,eventargs e 選擇目錄 事件 private void btn seldir click object ...

Python分割合併檔案

import os class fileoperationbase object def init self,oldpath,newpath,chunksize 1024 self.chunksize chunksize 分割後每個檔案的大小 self.oldpath oldpath 待處理檔案路徑...