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

Rip*_*ley 19 python egg

这可能是一个奇怪的要求,但这是我遇到的.我用Google搜索但没有产生任何结果.

我正在编写一个使用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()
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Ale*_*lli 13

egg文件是zipfiles,所以你必须使用Python标准库的zipfile模块访问其中的"stuff" ,而不是使用内置open函数!


H S*_*ore 6

如果您想访问.egg文件中的内容,则只需对其重命名并将扩展名从.egg更改为.zip,然后解压缩即可。这将创建一个文件夹,其内容与作为.egg文件时的内容相同

例如 重命名brewer2mpl-1.4.1-py3.6.zip后的brewer2mpl-1.4.1- py3.6.egg

现在,如果我们打开它,它将很容易解压缩,并且内容将放置在同一目录中的相同名称的文件夹中。(在macOS Sierra上测试)