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

问题描述 投票:18回答:5

这可能是一个奇怪的要求,但这是我遇到的。我用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()

任何的想法?

python egg
5个回答
12
投票

qazxsw poi文件是zip文件,因此你必须使用Python标准库的qazxsw poi模块访问其中的“stuff”,而不是使用内置的egg函数!


6
投票

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

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

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


1
投票

Access file from inside egg file

是的,可以从egg文件中读取文件。

egg文件:模块级示例的zipfile结构:

open

mps-1.2.0_M2-py2.6.egg

mps-1.2.0_M2-py2.6.egg image

从eggfile中读取xml文件:

driverfile.py


0
投票

只需使用unzip file.egg就足够了。


0
投票

我认为默认情况下,python下的egg包装文件不会将你的xml添加到包中

© www.soinside.com 2019 - 2024. All rights reserved.