read parse open how datacamp create python xml svg xml-parsing cnc

parse - python xml json



Python SVG parser (2)

Quiero analizar un archivo SVG usando python para extraer coordenadas / rutas (creo que esto está listado bajo el ID de "ruta", específicamente el d = "..." />). Estos datos se utilizarán finalmente para controlar un CNC de 2 ejes.

He buscado en SO y Google bibliotecas que puedan devolver la cadena de tales rutas para poder analizarlas aún más, pero sin éxito. ¿Existe tal biblioteca?


Ignorando las transformaciones, puede extraer las cadenas de ruta de un SVG de la siguiente manera:

from xml.dom import minidom doc = minidom.parse(svg_file) # parseString also exists path_strings = [path.getAttribute(''d'') for path in doc.getElementsByTagName(''path'')] doc.unlink()


Obtener el d-string se puede hacer en una línea o dos usando svgpathtools .

from svgpathtools import svg2paths paths, attributes = svg2paths(''some_svg_file.svg'')

rutas es una lista de svgpathtools Objetos de ruta (que contienen solo la información de la curva, sin colores, estilos, etc.). atributos es una lista de objetos de diccionario correspondientes que almacenan los atributos de cada ruta.

Para, digamos, imprimir las d-cuerdas luego ...

for k, v in enumerate(attributes): print v[''d''] # print d-string of k-th path in SVG