Gracias a todos por las sugerencias, Finalmente hice un pequeño programa utilizando el modulo csv para leer el archivo y la libreria MySQLdb para insertar los registros en una base de datos que cree. Adjunto el codigo, se aceptan sugerencias.
Saludos import csv import MySQLdb log = csv.reader(open('Syslog_2010-04-12.txt'), dialect='excel-tab') db = MySQLdb.connect(host='localhost', user='root', passwd='****',db = 'pythonlog') c = db.cursor() for row in log: cadena_total = row[3] x=0 x = cadena_total.find('system-information-00769') if x > 1: fecha=row[0] mensaje = cadena_total[91:] y = mensaje.find(' ') url=mensaje[y+1:] url=url[:url.find('CATEGORY:')-1] ip_origen = mensaje[0:mensaje.find('(')] dominio = url[0:url.find('/')] print ip_origen,' >> ' , url registro=[fecha,url,dominio,mensaje,ip_origen] c.execute ('INSERT INTO log_url (fecha,url,dominio,mensaje,ip_origen) values (%s,%s,%s,%s,%s)',registro ) c.close() db.commit() db.close() El 12 de abril de 2010 18:27, lopz <lowlife...@gmail.com> escribió: > No sé, yo no lo veo necesario usar un módulo de 3ros para parsear un > string, podrías hacerlo a base de strings y slices, o ahora que > aprendí lo básico de expresiones regulares me encantan, tiraría por > esto último. > Lo de abrir todo el fichero grande es mucho para cargarlo en memória, > tendrás que usar buffers o algo así, no estoy puesto al tema y me > gustaría saber cómo los expertos solucionarían este caso que a mi me > interesa :) > > Saludos! > > El día 12 de abril de 2010 19:05, César García <cel...@gmail.com> > escribió: > > que tal pyparsing ? veo que hasta tiene ejemplos de un archivo de log de > apache > > > > http://pyparsing.wikispaces.com/ > > > > El día 12 de abril de 2010 13:48, Carlos Herrera Polo > > <carlos.herrerap...@gmail.com> escribió: > >> Estimados: > >> > >> Pienso desarrollar un pequeño programa en python que procese un gran > archivo > >> de texto ASCII (200Mb aprox) el cual tiene varias lineas con informacion > de > >> URLs visitadas. Este archivo lo tengo en una PC Window$ que uso como > Syslog > >> y el firewall almacena ahi la informacion en linea. > >> La idea es que pueda hacer un programa que ubique en cada linea (que > >> terminan siempre con <000>) un URL, y de ser asi, almacenar en una base > de > >> datos , se me ocurre Mysql lo siguiente: > >> > >> Fecha , hora, IP , y el dominio del URL, de manera que pueda luego, > mediante > >> consultas a esa base de datos, obtener informacion agrupada sobre > paginas > >> mas vistas, usuarios con mas trafico, etc. > >> > >> Ejemplo de archivo ASCII: > >> > >> 2010-04-12 11:15:13 Local0.Info 192.168.1.1 FW_UNO: NetScreen > >> device_id=FW_REM [Root]system-information-00769: UF-MGR: URL PERMITTED: > >> 192.168.1.41(1619)->68.142.101.11(80) > >> > sunmicro-6.vo.llnwd.net/u/esd6/jscdl/jre/6u17-b80/jre/jre-6u17-windows-i586-if > >> CATEGORY: default REASON: BY_OTHER PROFILE: Acceso_Total (2010-04-12 > >> 11:14:36)<000> > >> 2010-04-12 11:15:13 Local0.Notice 192.168.1.1 FW_REM: NetScreen > >> device_id=FW_REM [Root]system-notification-00257(traffic): > >> start_time="2010-04-12 11:14:23" duration=14 policy_id=27 service=http > >> proto=6 src zone=Trust dst zone=Untrust action=Permit sent=1011 > rcvd=1042 > >> src=10.10.10.45 dst=204.160.104.126 src_port=1932 dst_port=80 src-xlated > >> ip=200.62.154.89 port=15204 dst-xlated ip=204.160.104.126 port=80 > >> session_id=45288 reason=Close - TCP RST<000> > >> 2010-04-12 11:15:14 Local0.Info 192.168.1.1 FW_REM: NetScreen > >> device_id=FW_REM [Root]system-information-00769: UF-MGR: URL PERMITTED: > >> 192.168.1.45(1928)->208.89.14.135(80) sales.liveperson.net/hc/55170107/ > >> CATEGORY: default REASON: BY_OTHER PROFILE: Acceso_Total (2010-04-12 > >> 11:14:37)<000> > >> > >> > >> Podrian por favor aconsejarme que modulos de Python deberia utilizar ? > Se > >> que Python tiene cientos de librerias, imagino que alguna debe poder > >> identificar de una variable string, el URL, y luego el dominio... > >> > >> Mil gracias de antemano por las sugerencias. > >> > >> Saludos > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es@python.org > >> http://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > >> > >> > > > > > > > > -- > > http://celord.blogspot.com/ > > _______________________________________________ > > Python-es mailing list > > Python-es@python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > -- > lopz es libre, usa --> GNU/linux gentoo > > +--[RSA 2048]--+ > | ..o.o=+ | > | o =o*.+ | > | . . *oO . | > | .EBoo | > | o.S | > +--[lopz.org]--+ > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ >
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/