gpt4 book ai didi

python - 如何使用多线程在 python 中解压缩多个 gz 文件?

转载 作者:IT王子 更新时间:2023-10-29 00:26:10 25 4
gpt4 key购买 nike

我有多个 gz 文件,总大小约为 120GB。我想将这些文件解压缩(gzip)到同一目录并删除现有的 gz 文件。目前我们正在手动进行,使用 gzip -d <filename> 解压缩需要更多时间.
有没有一种方法可以通过创建 python 脚本或任何其他技术来并行解压缩这些文件。目前这些文件在 Linux 机器上。

最佳答案

您可以使用 multiprocessing Pools 轻松完成此操作:

import gzip
import multiprocessing
import shutil

filenames = [
'a.gz',
'b.gz',
'c.gz',
...
]

def uncompress(path):
with gzip.open(path, 'rb') as src, open(path.rstrip('.gz'), 'wb') as dest:
shutil.copyfileobj(src, dest)

with multiprocessing.Pool() as pool:
for _ in pool.imap_unordered(uncompress, filenames, chunksize=1):
pass

这段代码会产生几个进程,每个进程一次提取一个文件。

这里我选择了 chunksize=1,以避免在某些文件大于平均大小时停止进程。

关于python - 如何使用多线程在 python 中解压缩多个 gz 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34451612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com