Python分割合併檔案

2021-09-17 22:34:57 字數 1769 閱讀 5268

import os

class fileoperationbase(object):

def __init__(self, oldpath, newpath, chunksize = 1024):

self.chunksize = chunksize #分割後每個檔案的大小

self.oldpath = oldpath #待處理檔案路徑

self.newpath = newpath #處理後檔案的存放路徑

# 將檔案分割成大小為chunksize的塊

def splitfile(self):

# '將檔案分割成塊,並儲存到newpath中'

if not os.path.exists(self.newpath): #若儲存目錄不存在,則

os.mkdir(self.newpath) #建立儲存目錄

chunknum = 0 #初始化分割後檔案數量為0

inputfile = open(self.oldpath, 'rb') #以二進位制讀的方式開啟大檔案

try:

while true:

chunk = inputfile.read(self.chunksize) #每次讀取固定大小的檔案

if not chunk: #若檔案塊是空的,則

break

chunknum += 1 #分割後的檔案數+1

# 將多個檔案路徑連線成乙個完整路徑作為檔案儲存路徑

filename = os.path.join(self.newpath, ("%02d.txt" % chunknum))

fileobj = open(filename, 'wb') #以二進位制寫的方式開啟小檔案

fileobj.write(chunk) #將讀取的內容寫入小檔案

fileobj.close() #關閉開啟的小檔案

except ioerror:

print("檔案讀取錯誤!\n")

raise ioerror

finally:

inputfile.close() #關閉開啟的大檔案

return chunknum

# 將多個檔案合併成乙個檔案

def mergefile(self):

# '將new路徑下的所有檔案塊合併,並儲存到old路徑下。'

if not os.path.exists(self.newpath): #若待合併檔案目錄不存在,則

print("待合併檔案路徑不存在,請輸入正確路徑!")

raise ioerror

files = os.listdir(self.newpath) #獲取待合併資料夾下所有檔名

with open(self.oldpath, 'w') as output: #以二進位制的方式開啟合併後的空大檔案

for eachfile in files: #遍歷待合併檔案

filepath = os.path.join(self.newpath, eachfile) #將待合併目錄與檔名合成完整路徑

with open(filepath, 'r') as infile: #以二進位制的方式開啟待合併檔案

data = infile.read() #讀取內容

output.write(data) #寫入到大檔案中

檔案分割合併功能

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

LInux 分割合併檔案

有兩種方式,第一種使用dd命令 第二種使用split dd命令是linux下乙個非常有用的磁碟命令。它可以將指定大小的塊拷貝成乙個檔案,並在拷貝的同時執行指定的轉換。unix已經提供了檔案切割功能,能完成這個功能的unix命令就是dd。要切割的大檔案為dgjd,共98336321位元組,則 dd i...

檔案的合併與分割

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