Ir al contenido principal

Leer UUID de XML en listado de archivos con Python

Hola bienvenidos a un nuevo post, esta semana quiero compartirles un ejemplo de un programa en Python 2.7 que me ayudo a poder leer el nodo UUID de mis recibos de nómina, se preguntaran para que, bueno ya esta próximo el mes de abril que es el mes de declaración anual para personas físicas en México y me gusta ir preparando mi información para cuando llega el momento, bueno entonces busque el listado de los UUID.

Declaracion Anual SAT


La lógica de mi programa es:


  • Primero obtener la ruta de donde voy a buscar los archivos XML (mis recibos) en mi caso puse la ruta, pero también pueden utilizar el comando raw_input. En el programa la línea:       path = 'c:\\Users\\Ana   \\Documents\\2020\\declaracion\\XML_nominas\\' 
  • De esa carpeta solo buscar archivos con extensión XML
    1. Primero para recorrer el directorio con el os.walk que nos regresa 3 lista, primero el directorio, luego los subdirectorios, los archivos, esto en el programa es for r,d,files in os.walk(path):
    2. Después buscar solo los archivos con extensión o terminación .XML en el programa if file.endswith(".xml"):
  • Después buscar en nodo tfd:TimbreFiscalDigital, para ello primero es necesario :
    1. hacer un parse a los datos del archivo : xmL = pulldom.parse(file)
    2. Luego buscar en los nodos del XML  for event, element in xmL:                if event == pulldom.START_ELEMENT and element.tagName == 'tfd:TimbreFiscalDigital' :
  • Luego encontrar la característica UUID , almacenarla en una variable e imprimirla en el programa son las siguientes lineas  UUID = element.getAttribute('UUID')                   print ("UUID",UUID)
  • Utilice la librería os para leer mi path, para el caso de rutas en Windows deben colocar "//" doble diagonal entre cada directorio, si fuera Linux o Unix solo un "\" 
  • Para colocar comentarios en Python utilicen el caracter "#"
  • Para imprimir la información, utilicen print

Para ello el programa es:


import os
from xml.dom import pulldom

path = 'c:\\Users\\Ana\\Documents\\2020\\declaracion\\XML_nominas\\' 
#path = raw_input("Enter the path:")

files = []
for r,d,files in os.walk(path):
    for file in files:
        if file.endswith(".xml"):
            print(file) 
            xmL = pulldom.parse(file)
            for event, element in xmL:
                if event == pulldom.START_ELEMENT and element.tagName == 'tfd:TimbreFiscalDigital' :
                   UUID = element.getAttribute('UUID')
                   print ("UUID",UUID)


Ejecución del programa

Leer XML con Python


No es un software de contabilidad, pero es un ejemplo de como podemos utilizar Python para nuestra declaración anual. 

Ustedes pueden ajustar el programa para que lea otros nodos y que les de más información si la necesitan.  Espero les sea de utilidad y recuerden si son personas físicas y el año pasado tuvieron facturas por gastos médicos (psicólogo, nutriólogo, dentista,lentes), colegiaturas (hasta preparatoria) , transporte de sus hijos, gastos funerarios, donaciones, hipotecarios, que son los que recuerdo pueden presentar su declaración ante el SAT para más información, les comparto la liga del SAT


Espero este programa les sea de utilidad, compartan el post y nos sigan en el #programacionparatodos  y en nuestra página de Facebook

Comentarios

  1. En python 3.9.7 en Linux yo tuve que agregar el path al archivo:
    xmL = pulldom.parse(path+file)

    Fuera de eso funciona bien, Gracias
    Yo lo implemente para el nodo cfdi:Concepto para buscar campos del Diesel y filtrar con pandas
    Atte: C.P. Andrés

    ResponderBorrar
    Respuestas
    1. Hola Andres que bueno que te encontraste como hacerlo funcionar en Linux y nos lo comparte,(CP es de contador público?

      Borrar

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