Python - AYUDA Bucle ficheros XML

 
Vista:
sin imagen de perfil
Val: 31
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por Jacob (11 intervenciones) el 17/02/2021 12:39:14
Hola buenas tardes, estoy comenzando con la programación en Python y me estoy encontrando algunos problemas que no consigo solventar. La idea del ejercicio era la siguiente:

Se nos proporciona un archivo .zip que contiene una lista de ficheros .XML, para los cuales tendremos que crear un único bucle que vaya leyendo el contenido de todos ellos y en concreto el de dentro de una etiqueta (que parece ser que se llama ELEMENTO si no he entendido mal), porque luego tendré que realizar una serie de tratamientos sobre el contenido de esa etiqueta que sera el mismo para todos los ficheros.

1. He comenzado subiendo el archivo .ZIP a mi drive e introduciendo en python la ruta donde se encontraba
2. Después mediante sentencias he descomprimido el archivo
3. Después he cambiado la ruta para que acceda a la carpeta que ha descomprimido, donde estan los XML


Mi idea ahora era utilizar una libreria que se llama BeautifulSoup que he leido parece ser accederia a la etiqueta que le diga dentro del fichero, pero me encuentro 1 problema:

1. Una vez hecho eso como podría usar un bucle para recorrer los distintos ficheros y leer la etiqueta (porque habia pensado en un bucle for que abra en modo lectura cada fichero y después busque la etiqueta, pero no termino de aclararme con este lenguaje como hacerlo)

Cualquier ayuda se lo agradeceria, un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por joel (901 intervenciones) el 17/02/2021 13:00:31
Hola Jacob, es tal y como comentas... el proceso que haces de descomprimir y leer el archivo, lo pones dentro de un bucle for que vaya recorriendo todos los archivos que desees.

No se como lo haces, ni donde tienes el listado de archivos, por lo que no se muy bien como indicarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por Jacob (11 intervenciones) el 17/02/2021 13:18:24
Hola Joel, gracias por la respuesta tan rápida.

PROBLEMA: La carpeta que contiene los archivos la tengo guardada en mi drive personal, acceder a los elementos y a la información de ellos en principio no es problema, pero claro si lo hago de uno en uno, pero con el bucle no sé hacerlo con todos, ademas de que dentro tendría que acceder a una parte concreta (que es la etiqueta <description xml: lang = es>)

PROBLEMA

Mi código: Habia visto lo de la libreria Beautifulsoup aunque quizá para mí que estoy empezando me lia un poco aunque entiendo el mecanismo.

He instalado la libreria y el parser para los XML, pero de ahi ya no sé como seguir y eso que he mirado ya unos cuantos videos y webs... pero no encuentro mi problema especifico

mi-codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por Jacob (11 intervenciones) el 17/02/2021 15:29:48
Vale he conseguido hacerlo con un fichero, pero el bucle for .... ni idea de como lo hago para que lea la etiqueta en cada fichero sin necesidad de hacer uno para cada archivo

continuacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por Jacob (11 intervenciones) el 17/02/2021 16:10:09
Vale ya he conseguido hacer una funcion que me recorre los ficheros y me saca el contenido de esa etiqueta <description> Seguiré intentando el resto y si tengo alguna duda la pongo por si alguien me puede echar una mano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por joel (901 intervenciones) el 17/02/2021 16:50:29
ah, perfecto Jacob!!!

Podrías ir mostrando el código de como lo vas realizando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por Jacob (11 intervenciones) el 17/02/2021 17:15:59
Ahora me he encontrado con el problema de que con la función sent_tokenize no me saca los distintos textos dentro de esos elementos <description> separado en oraciones. Y la verdad que no sé cual es el problema, porque si imprimo el texto solo, me saca las frases completas bien, pero si uso el sent_tokenize no me da error pero tampoco me las separa en oraciones. Pensaba que era por no estar entre comillas pero se las he puesto y tampoco lo hace.

El código de como lo llevo es este

duda-PLN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por joel (901 intervenciones) el 17/02/2021 17:48:59
No se como es el xml, pero según tu código, solo obtienes el primer <description>, no? tendrás que recorrer todos los elementos

Si no lo resuelves, pega parte de tu código xml y tu código para poder modificarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por Jacob (11 intervenciones) el 17/02/2021 18:54:32
Me han dicho que debo usar los métodos: find y find_all de la librería Beautifulsoup.

Que lo que tengo que leer es una página web, por tanto el parser debería ser (xml, 'html.parser')

Y tambien que me fijase bien en la etiqueta

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#FUNCION PARA ACCEDER A LOS FICHEROS .XML
def acceder_xml():
  import os
  contenido = os.listdir('/content/drive/MyDrive/Procesamiento del Lenguaje Natural/Practicas/notebook/colección_SciELO_PLN')
 
  for fichero in contenido:
    xml = open(fichero).read()              #Abro el fichero y leo el contenido
    bs = BeautifulSoup(xml, 'html.parser')    #Para leer una página web
 
    salida = bs.find_all('dc:description')       #Leer la etiqueta <description xml:lang="es">
    print(salida)                                  #Muestra de cada fichero las etiquetas <description xml:lang="es"> TEXTO </description>
 
    #text = '"' + bs.description.text + '"'
    #sent_tokenize(text, language="spanish")
    #print(text)
 
acceder_xml()             #Llamo a la función para comprobar que lo hace correctamente

Pero nada, no consigo entenderlo, hasta la línea donde pone print(salida) he comprobado que me sale la etiqueta con el contenido de cada uno de los 25 ficheros, pero si le paso el sent_tokenize sigue sin hacerme nada.


duda-PLN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

AYUDA Bucle ficheros XML

Publicado por Jacob (11 intervenciones) el 17/02/2021 21:27:01
Gracias por la ayuda Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar