使用Python提取tar文件的最快方法

花花公子

我必须提取数百个tar.bz文件,每个文件的大小为5GB。因此尝试了以下代码:

import tarfile
from multiprocessing import Pool

files = glob.glob('D:\\*.tar.bz') ##All my files are in D
for f in files:

   tar = tarfile.open (f, 'r:bz2')
   pool = Pool(processes=5)

   pool.map(tar.extractall('E:\\') ###I want to extract them in E
   tar.close()

但是代码有类型错误:TypeError:map()至少接受3个参数(给定2个)

我该如何解决?还有其他加速提取的想法吗?

卡斯拉文

您需要更改pool.map(tar.extractall('E:\\')为类似pool.map(tar.extractall(),"list_of_all_files")

请注意,map()第2个参数首先是一个函数,第二个是一个iterable,并将Apply函数应用于iterable的每个项目并返回结果列表。

编辑:您需要将一个TarInfo对象传递到另一个过程中:

def test_multiproc():
    files = glob.glob('D:\\*.tar.bz2')
    pool  = Pool(processes=5)
    result = pool.map(read_files, files)


def read_files(name):

 t = tarfile.open (name, 'r:bz2')
 t.extractall('E:\\')
 t.close()

>>>test_multiproc()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

性能:使用Python读取文件的最快方法

使用ffmpeg提取帧的最快方法?

使用tar提取文件夹内容?

使用PHP + TAR提取文件夹

使用bash脚本提取tar文件

哪种提取方法最快?

提取图案的最快方法

使用 python 从 .tar.gz 文件中仅提取 jpg 文件

tar 提取 tar 文件流

使用python3中的tarfile模块从tar中提取文本文件

使用格式为 tar.gz.part* 的 python tarfile 提取所有部分文件

如何提取tar文件?

使用python ftp tar文件

如何使用tar提取所有文件(某些文件除外)?

使用通配符提取tar归档文件中的特定文件

使用Python读取大型二进制文件的最快方法

在笔记本中上传大型csv文件以使用python pandas的最快方法是什么?

查找文件在多个tar包中是否存在的最快方法?

Python:无法从tar中仅提取特定文件夹

如何从python中的.tar存档中提取特定文件?

Python 3:从tar.gz存档中提取文件

从python中的tar存档中提取压缩的gz文件

使用tar提取并立即压缩tarball中的文件

仅显示使用tar真正提取(未跳过)的文件

仅使用其URL从在线tar存档中提取文件

如何使用 FIND + TAR 命令提取特定文件

当.tar和提取的文件同时没有空间时,是否有一种提取tar文件的方法?

与我目前使用`cut`和`rev`的方法相比,从文件名中提取年份以将其移动到基于年份的目录的最快方法是什么?

Python:从tar.gz中提取具有模式的特定文件,而无需提取完整文件