
Modificar archivo de texto quitando espacios...
Publicado por Dani (2 intervenciones) el 27/02/2014 15:12:19
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?
Con este bucle recorro el fichero origen.txt y lo guardo en destino, así que puedo aprovecharlo para meter ahí el resto de operaciones...
Fuente: http://chuwiki.chuidiang.org/index.php?title=Leer_y_escribir_ficheros_en_python.
Saludos
Dani
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?
Con este bucle recorro el fichero origen.txt y lo guardo en destino, así que puedo aprovecharlo para meter ahí el resto de operaciones...
1
2
3
4
5
6
7
if __name__ == "__main__":
f = open("origen.txt")
g = open("destino.txt","w")
for linea in f:
g.write(linea)
g.close()
f.close()
Fuente: http://chuwiki.chuidiang.org/index.php?title=Leer_y_escribir_ficheros_en_python.
Saludos
Dani
Valora esta pregunta


0