You are on page 1of 6

Archivos CSV (Comma separated file) Este tipo de archivos es un "estandar de facto" para muchas aplicaciones, incluyendo planillas

de clculo y bases de datos.Archivo CSV: Sebastin,Perez,33,23566777 Jose,Martinez,23,42121329 Karina,Gonzalez,32,24159857 Maria Laura,Yaes,19,43852144 Archivo CSV con otro separador (;): Sebastin;Perez;33;23566777 Jose;Martinez;23;42121329 Karina;Gonzalez;32;24159857 Maria Laura;Yaes;19;43852144 Leyendo CSV sin usar mdulo CSV Con las herramientas vistas hasta este momento podemos procesar dichos archivos: fh = open('archivo.txt') for line in fh: linea = line.split(',') # procesar elementos: nombre = linea[0] apellido = linea[1] # etc, etc

fh.close() Aunqe Python tiene un mdulo especialmente preparado para esto: CSV con mdulo CSV Uso del mdulo CSV: import csv f = open('fn.csv') lns = csv.reader(f) for line in lns: nombre = line[0] apellido = line[1] #Cambiando separador (delimitador): f = open('fn.csv') lns = csv.reader(f,delimiter=';') Dialectos No todos los CSV son hechos iguales, hay diferencias sutiles como las comillas en los campos de texto y otras diferencias menores que agregan algunos programas. Por eso existe un parmetro optativo llamado dialect. Estos son los valores que puede tomar: >>> csv.list_dialects() ['excel-tab', 'excel'] Por lo tanto, para leer un archivo csv generado por Excel:import csv

f = open('from_excel.csv') lines = csv.reader(f,dialect="excel") Escribiendo archivos CSV >>> import csv >>> f = open('eggs.csv', 'w') >>> obj = csv.writer(f, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL) >>> obj.writerow(['algo', 'algo mas', 'nada']) >>> f.close()

XML
XML, siglas en ingls de eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C). Deriva del lenguaje SGML y permite definir la gramtica de lenguajes especficos (de la misma manera que HTMLes a su vez un lenguaje definido por SGML) para estructurar documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo til cuando varias aplicaciones se deben comunicar entre s o integrar informacin. (Bases de datos Silberschatz). XML no ha nacido slo para su aplicacin para Internet, sino que se propone como un estndar para el intercambio de informacin estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de clculo y casi cualquier cosa imaginable. XML es una tecnologa sencilla que tiene a su alrededor otras que la complementan y la hacen mucho ms grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la informacin de una manera segura, fiable y fcil.

Para procesar (parse) la informacin contenida en documentos XML se dispone de diversas tcnicas, cada una de las cuales tiene sus propias caractersticas. Las dos tcnicas (modelos) fundamentales que existen para el procesamiento de documentos XML de manera independiente al lenguaje de programacin son las siguientes: DOM (Document Object Model) Es un estndar diseado por W3C (Consorcio World Wide Web) Basado en la estructura de rbol de XML Almacena todo el rbol en memoria (no recomendado para grandes documentos) Acceso directo a cualquier parte del documento SAX (Simple API for XML) Con licencia de dominio pblico, se ha convertido en un estndar "de hecho". Inicialmente diseado para Java, pero se ha extendido a varios lenguajes. Se basa en un funcionamiento basado en flujo (stream), de manera que se va procesando segn se recibe su contenido. No es necesario cargar todo el documento en memoria para procesarlo. Su programacin est basada en el tratamiento de eventos. La informacin es empujada (pushing) hacia la aplicacin al lanzarse un evento cuando se detecta un determinado tipo de informacin. No permite el acceso directo a una determinada parte del documento. No permite la modificacin de su contenido. StAX (Streaming API for XML) Diseado como una tcnica intermedia entre las dos anteriores. La aplicacin avanza un cursor trayendo (pulling) la informacin segn se va necesitando, sin posibilidad de hacer acceso directo. Permite la escritura de datos en el documento. Comparativa de tcnicas de procesadores (parsers) de documentos XML DOM SAX StAX

Tipo de API Facilidad de uso Capacidad XPath Eficiencia de memoria y CPU Acceso directo Lectura XML Escritura XML Crear, leer, actualizar, borrar

rbol en memoria Alta S Vara S S S S

Flujo por eventos (Streaming, push) Media No Buena No S No No

Flujo por extraccin (Streaming, pull) Alta No Buena No S S No

Adems de estas tcnicas para el procesamiento de los datos contenidos en documentos XML existen otras tcnicas para su tratamiento como las siguientes: XPATH: Es un lenguaje que permite realizar consultas mediante expresiones que recorren y procesan un documento XML. XSLT: (XML Style Sheet Language Transformations) Estndar definido por W3C. Presenta una forma de transformar documentos XML en otros e incluso a formatos que no son XML. La API que incorpora Java de manera predeterminada para manipular documentos XML se denomina JAXP (Java API for XML Processing), que permite utilizar todas esas tcnicas mencionadas anteriormente. Dispone de diversas clases agrupadas en los siguientes paquetes: javax.xml.parsers: Proporciona un interfaz comn para los diferentes procesadores SAX y DOM. org.w3c.dom: Define las clases de los componentes del modelo DOM. org.xml.sax: Define la API bsica de SAX. javax.xml.transform: Define la API de XSLT para transformar los documentos XML en otros formatos. javax.xml.stream: Proporciona la API para StAX. javax.xml.xpath: Proporciona la API para XPath. Adems de estas APIs incorporadas en Java puedes encontrar otras creadas por terceros con sus propias caractersticas. Algunas de ellas son, por ejemplo: DOM4J: dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. JDOM: provide a complete, Java-based solution for accessing, manipulating, and outputting XML data from Java code. XOM: XOM is a new XML object model. It is an open source (LGPL), tree -based API for processing XML with Java that strives for correctness, simplicity, and performance, in that order. XStream: XStream is a simple library to serialize objects to XML and back again.

You might also like