Foros del Web » Programando para Internet » Python »

Modificar archivo de texto quitando espacios...

Estas en el tema de Modificar archivo de texto quitando espacios... en el foro de Python en Foros del Web. Buenas: Me estoy iniciando en Python, seguí varias guías pero al final siempre se me olvida casi todo lo que aprendo así que quiero aplicarlo ...
  #1 (permalink)  
Antiguo 11/03/2014, 04:51
 
Fecha de Ingreso: marzo-2014
Mensajes: 1
Antigüedad: 10 años, 8 meses
Puntos: 0
Modificar archivo de texto quitando espacios...

Buenas:

Me estoy iniciando en Python, seguí varias guías pero al final siempre se me olvida casi todo lo que aprendo así que quiero aplicarlo a algo real para practicar.

Me llamo Dani y soy técnico de sistemas acostumbrado a programar cosillas sencillas en C, java, powershell y scripts CMD. Ahora me he planteado un reto más grande. Tengo un log que ocupa la friolera de 1,5 GB que importo a un Access para hacer datamining y obtener consultas y estadísticas. El problema es que hace meses, debido a una actualización, esos logs no solo crecen en demasía sino que modifica la estructura y ya no puedo importar las columnas por tabulación sino que tengo que hacer magia...

Los logs, vienen de esta guisa: ...src_port=56663 src_int="port1"..., con lo que simplemente elimino las comillas dobles y los espacios los convierto por punto y coma para luego importarlo a Access. El problema viene por dos cosas, la primera es que ocupa mucho y no lo puedo hacer los reemplazos ni con wordpad, notepad++, etc, y el segundo es que algunas filas, tienen un este tipo ...src_port=56663 src_int="port1" country="United States"... con lo que el espacio del país lo sustituye por punto y coma y ya no cuatra en el access con lo que no se puede importar correctamente en cada columna.

Aunque lo podría hacer con java, mi idea era hacerlo con python para aprovechar y desoxidar mis conocimientos...

Para el tema del tamaño del archivo pensaba partirlo en tres de 500 MB cada uno.

Para el tema del espacio de las palabras dentro de las comillar, creo que puedo recorrer el documento sin hacer nada hasta encontrar unas comillas dobles y cuando esto ocurra, recorrer caracter por caracter hasta llegar a dos situaciones: 1.- Encuentra un espacio = Lo borra. 2.- Encuentra otra comillas doble = deja de recorrer caracter por caracter y vuelve a buscar la siguiente comillas dobles.

¿Alguien me puede echar una mano?

El archivo de texto tiene miles de filas como esta cada una dice algo relacionado con un evento de un firewall.

Este es el log:

2013-12-30 23:50:26 Local7.Warning 10.55.15.55 date=2013-12-30 time=23:50:21 devname=FG900D device_id=FG900D log_id=0038000007 type=traffic subtype=other pri=warning vd=root src=66.1.1.3 src_port=37751 src_int="wan1" dst=88.20.1.3 dst_port=25 dst_int="dmz" SN=5427 status=deny policyid=26 dst_country="Spain" src_country="United States" service=SMTP proto=6 duration=8784300 sent=0 rcvd=0 msg="replay packet(allow_err), drop"
2013-12-30 23:50:32 Local7.Warning 10.55.15.55 date=2013-12-30 time=23:50:29 devname=FG900D device_id=FG900D log_id=0038000007 type=traffic subtype=other pri=warning vd=root src=172.28.5.100 src_port=33012 src_int="dmz" dst=88.20.1.3 dst_port=80 dst_int=unknown-0 SN=0 status=deny policyid=0 dst_country="Germany" src_country="Reserved" service=HTTP proto=6 duration=8784305 sent=0 rcvd=0 msg="no session matched"
2013-12-30 23:50:34 Local7.Warning 10.55.15.55 date=2013-12-30 time=23:50:34 devname=FG900D device_id=FG900D log_id=0038000007 type=traffic subtype=other pri=warning vd=root src=172.28.5.100 src_port=48109 src_int="dmz" dst=88.20.1.3 dst_port=80 dst_int=unknown-0 SN=0 status=deny policyid=0 dst_country="Germany" src_country="Reserved" service=HTTP proto=6 duration=8784308 sent=0 rcvd=0 msg="no session matched"
2013-12-30 23:50:41 Local7.Warning 10.55.15.55 date=2013-12-30 time=23:50:40 devname=FG900D device_id=FG900D log_id=0038000007 type=traffic subtype=other pri=warning vd=root src=77.2.1.200 src_port=34631 src_int="wan1" dst=88.20.1.3 dst_port=25 dst_int="dmz" SN=5480 status=deny policyid=26 dst_country="Spain" src_country="United States" service=SMTP proto=6 duration=8784315 sent=0 rcvd=0 msg="replay packet(allow_err), drop"
2013-12-30 23:50:43 Local7.Warning 10.55.15.55 date=2013-12-30 time=23:50:43 devname=FG900D device_id=FG900D log_id=0038000007 type=traffic subtype=other pri=warning vd=root src=10.55.1.156 src_port=60614 src_int="port1" dst=88.20.1.3 dst_port=25 dst_int="dmz" SN=5489 status=deny policyid=26 dst_country="Spain" src_country="Reserved" service=SMTP proto=6 duration=8784317 sent=0 rcvd=0 msg="replay packet(allow_err), drop"




Saludos
Dani
  #2 (permalink)  
Antiguo 11/03/2014, 09:20
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Modificar archivo de texto quitando espacios...

Quizás esto te sirva, pruébalo con una línea de ejemplo. El módulo csv de Python es muy flexible:

Código Python:
Ver original
  1. import csv
  2. cad = "tu linea"
  3. print csv.reader([cad], delimiter=' ').next()


Saludos.

Etiquetas: gui, ip, modificar, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:26.