Python 在内存中通过tar归档来提取元数据?

Python 在内存中通过tar归档来提取元数据?,python,zip,tar,Python,Zip,Tar,我有几个tar档案需要在内存中提取/读取。问题是每个tar都包含许多ZIP归档,每个都包含唯一的XML文档 因此每个tar的结构如下:tar->directories->ZIPs->XML 显然,我可以手动提取一个TAR文件,但我有大约1000个TAR文件,每个文件大约3gb,每个文件包含大约6000个ZIP文件。我正在寻找一种方法来处理内存中的.tar存档,并提取每个ZIP的XML数据。有办法做到这一点吗 这应该是可行的,因为所有相关方法都有与磁盘无关的选项 这里有很多圈,让我们开始吧 对于每

我有几个tar档案需要在内存中提取/读取。问题是每个tar都包含许多ZIP归档,每个都包含唯一的XML文档

因此每个tar的结构如下:tar->directories->ZIPs->XML


显然,我可以手动提取一个TAR文件,但我有大约1000个TAR文件,每个文件大约3gb,每个文件包含大约6000个ZIP文件。我正在寻找一种方法来处理内存中的.tar存档,并提取每个ZIP的XML数据。有办法做到这一点吗

这应该是可行的,因为所有相关方法都有与磁盘无关的选项

这里有很多圈,让我们开始吧

对于每个tar归档:

  • tarfile.open
    将打开tar存档。()
  • 在生成的
    TarFile
    实例上调用
    .getmembers
    ,以获取存档中包含的ZIP(或其他文件)列表。()
对于tar归档中的每个zip:

  • 一旦您知道要查看哪个成员文件(即您的一个zip),请在
    TarFile
    实例上调用
    .extractfile
    ,以获取该zip的文件对象。()
  • 用文件对象实例化一个新的
    zipfile.zipfile
    ,以便打开zip文件,以便使用它。()
  • ZipFile
    实例上调用
    .infolist
    ,以获取它包含的文件(包括XML文件)的列表。()
对于zip中的每个XML文件:

  • ZipFile
    实例上调用
    .open
    ,以获取其中一个XML文件的文件对象。()
  • 现在,您有了一个与一个XML文件对应的文件对象。用它做任何你想做的事:
    。读它,把它复制到某个地方的磁盘上,把它粘贴到
    元素树中
    (),等等

这应该是可行的,因为所有相关方法都有与磁盘无关的选项

这里有很多圈,让我们开始吧

对于每个tar归档:

  • tarfile.open
    将打开tar存档。()
  • 在生成的
    TarFile
    实例上调用
    .getmembers
    ,以获取存档中包含的ZIP(或其他文件)列表。()
对于tar归档中的每个zip:

  • 一旦您知道要查看哪个成员文件(即您的一个zip),请在
    TarFile
    实例上调用
    .extractfile
    ,以获取该zip的文件对象。()
  • 用文件对象实例化一个新的
    zipfile.zipfile
    ,以便打开zip文件,以便使用它。()
  • ZipFile
    实例上调用
    .infolist
    ,以获取它包含的文件(包括XML文件)的列表。()
对于zip中的每个XML文件:

  • ZipFile
    实例上调用
    .open
    ,以获取其中一个XML文件的文件对象。()
  • 现在,您有了一个与一个XML文件对应的文件对象。用它做任何你想做的事:
    。读它,把它复制到某个地方的磁盘上,把它粘贴到
    元素树中
    (),等等

这正是我想要的。我是python的新手,只是需要一些指导。整个过程似乎相当简单,只是大量的循环和挖掘。谢谢你的帮助链接!当然可以;对不起,这是我的第一个问题,我不确定我到底在做什么这正是我想要的。我是python的新手,只是需要一些指导。整个过程似乎相当简单,只是大量的循环和挖掘。谢谢你的帮助链接!当然可以;对不起,这是我的第一个问题,我不确定我到底在做什么这正是我想要的。我是python的新手,只是需要一些指导。整个过程似乎相当简单,只是大量的循环和挖掘。谢谢你的帮助链接!当然可以;对不起,这是我的第一个问题,我不确定我到底在做什么