0

我编写了一个hwrt带有model.tar文件的 Python 包。文件本身和内容都不应该打扰用户(他们可以查看它,这不是秘密 - 但他们不需要它)。

我需要处理该档案中的文件。为此,我提取内容并使用它们:

import tarfile
tar = tarfile.open('model.tar in python package')
tar.extractall()
tar.close()
[... work with those files ...]

这行得通。但是,我发现这种方法存在两个问题:

  1. model.tar每次都被提取。
  2. 包含的文件被放置在用户可能不期望的当前工作目录中。

为了解决问题(2),在我看来,在其中创建一个临时文件夹tempfile.gettempdir()将是最干净的解决方案。但是,我不确定这是否是应该这样做的地方。

是否有其他存档格式可以让我直接访问存档的内容?安装后,是否有一个目录可以放置我的 Python 包(适用于所有用户)的文件?

4

1 回答 1

0

如果文件只有 ~10MB,只需将其读入 RAM。您以后的数千次访问将感谢您。

如果您只想第一次解包,您有几个选择:

  • 安装时解压到源码目录

  • 解压一次到本地.cache目录

如果您可以承受每次运行一次拆包,请使用tempfile.gettempdir.

于 2014-12-05T13:43:31.927 回答