2010-09-07 10 views
13

Gente¿Cómo acceder a los archivos dentro de un archivo egg de python?

Esto podría ser un requisito extraño pero es con lo que me he encontrado. Busqué en Google pero no di nada.

Estoy codificando una aplicación que está usando una gran cantidad de atributos/valores constantes registrados en un archivo XML (no van a cambiar un archivo estático), las cosas funcionan bien hasta que genere un archivo huevo para ello.

Cuando la lógica llega a la parte de acceso xml, recibí una queja como esta: /home/Workspace/my_proj/dist/mps-1.2.0_M2-py2.6.egg/mps/par/client/syntax/ syntax.xml

En realidad, he incluido el archivo xml en la ruta anterior pero parece que Python no sabe cómo acceder a él.

El código para acceder al xml es tan ...

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

Alguna idea?

Gracias chicos de antemano.

Respuesta

9

egg archivos son zipfiles, por lo que deben tener acceso a "cosas" en su interior con el módulo zipfile de las bibliotecas estándar de Python, no con la incorporada en el open función!

+0

Leí el documento para el módulo zipfile y seguramente podría hacer el trabajo. Gracias ~ – Ripley

+0

incluso puede instalarlos usando, sudo easy_install your_eggfile – shahjapan

0

Si desea acceder a los contenidos dentro del archivo .egg, simplemente puede cambiar el nombre y cambiar la extensión de .egg a .zip y luego descomprimirlo. que creará una carpeta y el contenido será el mismo que lo fueron cuando era un archivo .egg

por ejemplo brewer2mpl-1.4.1-py3.6.egg
Después de cambiar el nombre de brewer2mpl-1.4. 1-py3.6.zip

Ahora, si lo abrimos, se descomprimirá fácilmente y el contenido se colocará en una carpeta con el mismo nombre en el mismo directorio. (probado en macOS Sierra)

0

simplemente use descomprimir file.egg esto debería ser suficiente.

Cuestiones relacionadas