Python2.7:读取zipfile中的gzfile内容

时间:2018-11-21 15:42:47

标签: python-2.7

你好,我想知道是否有一种方法可以读取以gzformat存储的,以zipformat存储的未格式化文件。也应该做到这一点,而不要提取python 2.7所不能提供的任何文件格式和外部plugingin。

如果一个zip文件中有一堆gz,我只想读取全部或全部内容(取决于最小的内存使用量),然后将其以txt格式存储在外面。 到目前为止,我的代码可以读取zip中的.log,.gz,.zip和.zip。 这个想法是它应该重复自己直到我们得到主文件! 在此先感谢:=)

.zip --->。gz --->未格式化的文件

def decompress_file(filepath,type,file=None):
result = {}
if type.lower() == '.log':
     if file ==None:
         inFile = open(filepath, 'r')
         return getLog(inFile)
     else:
         return getLog(file)


if type.lower() == '.gz':
    if file == None:
        inFile = gzip.open(filepath, "r")
    else:
        #content = io.BytesIO(file.read())
        with file:
            Gz_file= open(file,'r')
            for gzFiles in file.namelist():

                zFile=file.getinfo(file)
                return getLog(zFile)

    return getLog(inFile)
    print inFile
    return getLog(inFile)

if type.lower() == '.zip':
    if file == None:
        with zip.ZipFile(filepath,'r'):
            zFile = zip.ZipFile(filepath)
    else:
        with zip.ZipFile(file,'r'):
            zFile = zip.ZipFile(file)

    for f_list in zFile.namelist():
        content= io.BytesIO(zFile.read(f_list))
        pattern = r'(.+)(?P<file>\.zip|\.gz)'
        rgz = re.compile(pattern, re.IGNORECASE)
        m = rgz.match(f_list)
        if m==None:
            type = '.log'
            decompress_file(f_list,type,zFile)
        else:                
           decompress_file(f_list,m.group('file').lower(),content)
    return result
return result

if __name__ == '__main__':
decompress_file("filepath",'.zip' )

0 个答案:

没有答案