python实现文件的分割与合并

使用Python来进行文件的分割与合并是非常简单的。

python代码如下:

splitFile--将文件分割成大小为chunksize的块;

mergeFile--将众多文件块合并成原来的文件;

# coding=utf-8

import os,sys

reload(sys)

sys.setdefaultencoding('UTF-8')

class FileOperationBase:

def __init__(self,srcpath, despath, chunksize = 1024):

self.chunksize = chunksize

self.srcpath = srcpath

self.despath = despath

def splitFile(self):

'split the files into chunks, and save them into despath'

if not os.path.exists(self.despath):

os.mkdir(self.despath)

chunknum = 0

inputfile = open(self.srcpath, 'rb') #rb 读二进制文件

try:

while 1:

chunk = inputfile.read(self.chunksize)

if not chunk: #文件块是空的

break

chunknum += 1

filename = os.path.join(self.despath, ("part--%04d" % chunknum))

fileobj = open(filename, 'wb')

fileobj.write(chunk)

except IOError:

print "read file error\n"

raise IOError

finally:

inputfile.close()

return chunknum

def mergeFile(self):

'将src路径下的所有文件块合并,并存储到des路径下。'

if not os.path.exists(self.srcpath):

print "srcpath doesn't exists, you need a srcpath"

raise IOError

files = os.listdir(self.srcpath)

with open(self.despath, 'wb') as output:

for eachfile in files:

filepath = os.path.join(self.srcpath, eachfile)

with open(filepath, 'rb') as infile:

data = infile.read()

output.write(data)

#a = "C:\Users\JustYoung\Desktop\unix报告作业.docx".decode('utf-8')

#test = FileOperationBase(a, "C:\Users\JustYoung\Desktop\SplitFile\est", 1024)

#test.splitFile()

#a = "C:\Users\JustYoung\Desktop\SplitFile\est"

#test = FileOperationBase(a, "out")

#test.mergeFile()

程序注释部分是使用类的对象的方法。

以上是 python实现文件的分割与合并 的全部内容, 来源链接: utcz.com/z/352922.html

回到顶部