将多个文件流式传输到Python中的可读对象
发布时间:2020-12-20 11:36:18 所属栏目:Python 来源:网络整理
导读:我有一个函数,使用file.read(len)方法处理文件中的二进制数据.但是,我的文件很大,并且被分成许多小文件,每个50 MB.是否有一些包装类将许多文件提供给缓冲流,并提供read()方法? 类fileinput.FileInput可以做这样的事情,但它只支持逐行读取(没有参数的方法rea
我有一个函数,使用file.read(len)方法处理文件中的二进制数据.但是,我的文件很大,并且被分成许多小文件,每个50 MB.是否有一些包装类将许多文件提供给缓冲流,并提供read()方法?
类fileinput.FileInput可以做这样的事情,但它只支持逐行读取(没有参数的方法readline())并且没有read(len)指定要读取的字节数. 解决方法
我不熟悉执行该功能的标准库中的任何内容,因此,如果没有:
try: from cStringIO import StringIO except ImportError: from StringIO import StringIO class ConcatenatedFiles( object ): def __init__(self,file_objects): self.fds= list(reversed(file_objects)) def read( self,size=None ): remaining= size data= StringIO() while self.fds and (remaining>0 or remaining is None): data_read= self.fds[-1].read(remaining or -1) if len(data_read)<remaining or remaining is None: #exhausted file self.fds.pop() if not remaining is None: remaining-=len(data_read) data.write(data_read) return data.getvalue() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |