Python3:从tar.gz归档文件中提取文件

Python3:从tar.gz归档文件中提取文件,python,archive,Python,Archive,我目前正在和你一起工作 该资源位于7.5 GB tar.gz归档文件中,其中的每个文件都是XML,其模式为: <text> Plain text </text> <annotation> Annotation for plain text </annotation> 解析和使用XML文件的内容时必须进行提取,还是可以读取归档内容(动态读取,不提取任何内容),然后解析内容 更新:我正在通过tar-xvzf filena

我目前正在和你一起工作

该资源位于7.5 GB tar.gz归档文件中,其中的每个文件都是XML,其模式为:

<text>
       Plain text
</text>

<annotation>
       Annotation for plain text
</annotation>
解析和使用XML文件的内容时必须进行提取,还是可以读取归档内容(动态读取,不提取任何内容),然后解析内容


更新:我正在通过tar-xvzf filename.tar.gz命令提取文件,一切进展顺利,但15分钟后,我只能处理100GB中的500MB

我建议您使用7zip进行提取。您可以从python中启动7zip提取,然后当它并排提取时,您可以读取提取的文件。这将节省相当多的时间。您可以使用线程来实现


其次,在给出windows路径时不要使用前斜杠。您可以使用
\
代替
/

您也可以按如下方式尝试使用shutil

shutil.unpack_archive('path_to_your_archive', 'path_to_extract')

我使用7zip(不是以编程方式)来提取.gz和tarball。第一次提取在2分钟内完成,第二次提取似乎什么也不做,因为10分钟后,我没有从安装了Bash的7zipIn windows系统收到任何反馈,为了提取tar.gz,我使用命令
tar-xvzf yourfilename.tar.gz
,或者您可以使用7zip命令
PATH_TO_7zip\7z.exe x yourfile.tar.gz-so | PATH_TO_7zip\7z.exe x-si-ttar
。这个命令对你有用。它将直接从tar.gz->.tar->提取的数据工作正常,但我想我需要用我的一生来处理整个存档…实际上你的数据相当大,为7.5 GB。提取后,我想会增加更多。因此,这肯定需要时间来处理它。或者使用一些具有高内存和处理速度的工作站。Python有一个tarfile模块来处理这个问题。我忘了写我使用tarfile模块在归档文件中执行每个操作
shutil.unpack_archive('path_to_your_archive', 'path_to_extract')