繁体   English   中英

Python解压缩多个.gz文件

[英]Python unzip multiple .gz files

我已经使用7zip将文件压缩为几个块:

有:

foo.txt.gz.001
foo.txt.gz.002
foo.txt.gz.003
foo.txt.gz.004
foo.txt.gz.005

想:

foo.txt

如何使用python解压缩并合并这些块以获得单个文件?

首先,获取所有文件的列表。

files = ['/path/to/foo.txt.gz.001', '/path/to/foo.txt.gz.002', '/path/to/foo.txt.gz.003']

然后遍历每个文件并追加到结果文件。

with open('./result.gz', 'ab') as result:  # append in binary mode
    for f in files:
        with open(f, 'rb') as tmpf:        # open in binary mode also
            result.write(tmpf.read())

然后解压缩是使用zipfile lib。 您可以使用tempfile来避免使用临时zip文件。

首先,您必须按顺序提取所有zip文件:

import zipfile

paths = ["path_to_1", "path_to_2" ]
extract_paths = ["path_to_extract1", "path_to_extrac2"]

for i in range(0, paths):
    zip_ref = zipfile.ZipFile(paths[i], 'r')
    zip_ref.extractall(extract_paths[i])
    zip_ref.close()

接下来,您可以转到提取的位置,并以openread()到单个文件string 连接这些字符串并保存到foo.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM