Ir al contenido principal

Usos de python: leer XML y sumar nodos

Bienvenidos a otra semana de este blog, Python es hasta el momento el último lenguaje que he aprendido, les puedo decir que es muy sencillo de aprender es simple su lógica, sobre todo se utilizan funciones en librerías que ya existen, hay incluso varios memes que dicen el tiempo en definir qué quieres que haga el programa pero es más tiempo que tardas encontrando la librería correcta en Python.

Para aprender este lenguaje y tener un certificado, hice un curso en la plataforma de Coursera que se llama Python for everybody de la Universidad de Michigan consiste en 5 módulos, el Dr. que imparte el curso a mi gusto es el mejor maestro que he tenido Charle Severance tiene una forma muy simple de explicar las cosas complejas y da muchos ejemplos en el curso, todo está documentado en varios idiomas, inglés, francés, alemán, español, etc.., hay videos también de las clases, hay presentaciones de power point, exámenes, tareas prácticas y al finalizar cada módulo te otorgan un certificado de la universidad de Michigan con valor curricular.
También hay APPS para aprender yo utilizo una que se llama Tutorial Python 3.0, me gusta porque son sesiones breves , te ponen ejercicios, hay duelos de programación, foros y puedes ejecutar los programas desde el celular y te otorga también un certificado.



Bueno entrando a un ejemplo como hacemos en este blog, voy a realizar un ejemplo con Python para leer un XML


Objetivo: Realizar programa que sume todos los saldos iniciales y finales por cuenta de un XML de  auxiliar de cuentas de Contabilidad Electrónica del SAT 

Programa:
import decimal
sumasaldofin = 0
sumasaldoin = 0
sumasaldodebe = 0
sumasaldohaber = 0

from lxml import etree
from xml.dom import pulldom
from xml.sax import make_parser
from xml.sax.handler import feature_external_ges



parser = make_parser()
xmL = pulldom.parse('C:\Users\Ana Zamora\Desktop\XAXX0101010201808XC.xml')
for event, element in xml:
    if event == pulldom.START_ELEMENT and element.tagName == 'AuxiliarCtas:Cuenta' :
        sumasaldofin = decimal.Decimal(element.getAttribute('SaldoFin')) + sumasaldofin
        sumasaldoin  = decimal.Decimal(element.getAttribute('SaldoIni')) + sumasaldoin
print ("saldo fin",sumasaldofin,"saldoini", sumasaldoin)

Lo que hace es programa es que utilizamos las librerias lxml, xml.dom xml.sax, busca los nodos de XML AuxiliarCtas:Cuenta y los sub-nodos SaldoFin y SaldoIni, 
Este programa sirve para comprobar los datos del XML vs la Balanza contable, cualquier persona me diría pues igual eso lo haces en un Excel, pero resulta que el archivo que tenia  para realizar la comprobación tiene 3,481,919 líneas, pesa 507,161 KB, no se puede abrir en Excel por la cantidad de lineas, la ejecución del programa fue de 5.10 minutos
Lo que puedo decir es un programa muy sencillo de 20 lineas lo complicado en verdad fue encontrar las librerías correctas:

from lxml import etree
from xml.dom import pulldom
from xml.sax import make_parser
from xml.sax.handler import feature_external_ges


Tiene mucha funcionalidad y que es muy rápido, para temas como BigData que manejan muchísima información es una muy buena herramienta, por algo es uno de los lenguajes más populares en empresas de tecnología como Google.

Ejecución del programa:
Aquí vemos la pantalla del resultado mostrando el valor de total.


No olvide compartirnos y seguirnos en este blog, en Facebook.

Otros ejemplos de Python en este post

Como hacer gráficas en Python

Ordenamiento burbuja

Ciclos en programación

Encontrar ubicación en google maps con Api
Leer Nodo de una lista de archivos XML

Comentarios

  1. Felicidades, Excelente publicación. Funciona a la perfección

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Ejemplo Python para leer imagen y transformarla en una matriz

Como hemos visto en otros post, Python nos permite hacer programas de manera más rápida, en esta ocasión quiero compartirles un ejemplo para leer un archivo de imagen y como convertirlo en una matriz o un arreglo. Aplicaciones Poder hacer ingeniería de datos, es decir poder convertir una misma imagen en diferentes todos y utilizarlos para machine learning para reconocimiento de gatos, para ello hay que mostrar muchas imágenes a nuestro modelo es decir entrenarlo, para ello hay que colocarle imágenes claras y imagenes que no sean tan claras por ejemplo, se pone la imagen original y se agrega "ruido" para que se vea en rojos, grises, verdes. Se pudo utilizar para un mapa , para poder ver datos a detalle Se puede aplicar para manipular imágenes, por ejemplo agregar efectos  Seguramente a ustedes se les pueden ocurrir más aplicaciones Les comparto el ejemplo de como hacerlo en Jupiter y para hacer el ejemplo voy a utilizar el logo del blog es una imagen de 500x500 pixeles Los Pas