如何访问Python egg文件中的文件?

24 投票
6 回答
46202 浏览
提问于 2025-04-16 03:47

这可能是个奇怪的要求,但我遇到了这个问题。我在网上搜索过,但没有找到答案。

我正在编写一个应用程序,它使用了很多常量属性/值,这些值记录在一个XML文件中(这些值不会改变,所以我用的是一个静态文件)。一切运行得很好,直到我为它生成了一个egg文件。

当程序运行到访问XML文件的部分时,我收到了一个这样的错误提示:

/home/Workspace/my_proj/dist/mps-1.2.0_M2-py2.6.egg/mps/par/client/syntax/syntax.xml

实际上,我已经把这个XML文件打包在上面的路径里,但看起来Python不知道怎么去访问它。

访问XML文件的代码是这样的……

file_handler = open(path_to_the_file)
lines = file_handler.read().splitlines()

有什么想法吗?

6 个回答

2

*nix系统上的less命令可以查看zip文件的内容。所以你可以用less some.egg来列出一个.egg文件里的内容。

12

如果你想查看 .egg 文件里的内容,可以简单地把它的名字改一下,把后缀从 .egg 改成 .zip,然后解压缩它。这样就会创建一个文件夹,里面的内容和 .egg 文件里的完全一样。

比如说,brewer2mpl-1.4.1-py3.6.egg
改名后变成 brewer2mpl-1.4.1-py3.6.zip

现在如果我们打开这个文件,它会很容易被解压,内容会放在同一个目录下一个同名的文件夹里。(在 macOS Sierra 上测试过)

22

egg 文件其实就是一种压缩文件,类似于我们常见的 zip 文件。所以,如果你想查看里面的内容,就得用 Python 自带的 zipfile 模块,而不是直接用内置的 open 函数来打开它!

撰写回答