我有多个gz文件,总大小约为120GB.我想将这些文件解压缩(gzip)到同一目录并删除现有的gz文件.目前我们正在手动执行此操作,并且需要更多时间来解压缩使用gzip -d
.
有没有办法可以通过创建python脚本或任何其他技术并行解压缩这些文件.目前这些文件位于Linux机器上.
您可以使用多处理池轻松完成此操作:
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
,以避免一些文件大于平均值时停止进程.