#!/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 待處理檔案路徑...