Python分割合并文件

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)						#写入到大文件中
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值