如何在Python中创建可从被调用应用程序访问的内存映射文件?

时间:2017-01-20 15:37:37

标签: python memory-mapped-files

好的,我意识到标题可能并不清楚。我在此澄清并希望有人可以提供更好的头衔。

我在python中打开一个压缩文件(tarball或类似文件)并读取一些内容。其中一个附带的文件非常大(大约200GB,大多数为零)。由于python tarfile模块为我提供了类似文件句柄的对象,我通常可以使用它们,就好像我在存档中打开文件一样,没有完全解压缩所附文件。

不幸的是,我必须使用我无法修改的第三方工具对此封闭文件进行一些处理。此第三方工具仅对磁盘上的文件进行操作。它不会从标准输入中获取输入。

我现在所做的是将整个200 GB(主要是零)文件提取到磁盘以进行进一步处理。显然,这需要一段时间。

我想做的是(如果可能的话,使用python)制作一个"文件"在磁盘上映射回"文件句柄"来自python中的tarfile模块。然后我可以通过这个"文件"到我的第三方工具并从那里开始。

我的目标操作系统是linux(虽然也适用于OSX的解决方案会很好)。我不在乎在Windows上工作。

编辑

  • 外部工具将文件名(或完整路径)作为参数。它将数据打印到stdout(python读取)
  • 我使用稀疏文件进行设置。虽然没有我想象的那么快,但它比以前快得多。

0 个答案:

没有答案