Hola a Todos!!
Tengo un problema con python y he decidido la opción mas ruin... mendigar ayuda XD
vamos al lio !
La idea principal es seleccionar solo la informacion que nos interese de un log muy extenso (es información de servidores ) .Toda la info interesante la pasaremos a un nuevo .txt
En un primer paso he conseguido leer todo el primer log como texto y seleccionar solo los servidores que me interesan.
Peroooooooooo mi problema viene cuando quiero hacer mas restrictiva la busqueda .Solo quiero unas cuantas linias de cada servidor (las que contengan por ejemplo la palabra "carpetaspersonales","home"... las demas no interesan para nada).
Ahora os pongo mi codigo y el momento en que me quedo pillado
serv = ("serv1","serv2","serv3")
var = ("home","carpetaspersonales")
with open('mylogoriginal.txt') as infile, open('mylogconerrores.txt', 'w') as outfile:
for r in serv:
for line in infile:
if serv in line:
*Aqui esta el problema! si pongo un segundo condicional con las palabras clave ("var" ) me peta,he intentado un "and" en el anterior..nada , NO lo entiendo!!! :-X !!
*
outfile.write(line)
print ("fin")
input ()
Son mis primeros pasos en python por lo que supongo que el error puede estar tambien en el enfoque del problema y su solución. Agradecería cualquier aportación .
Muchas gracias por vuestro tiempo !!! y un SALUDO desde este primer post!
Editado porque le faltaba info.thx.
¿Y el error que se dispara cual es? Porque entre otras cosas veo que pones "if serv in line", cuando a mi parecer debería de ser "if r in line"
Saludos
Hola Novlucker,
Es verdad al copiar el codigo meti la zarpa, el bueno es este
serv = ("serv1","serv2","serv3")
var = ("home","carpetaspersonales")
with open('mylogoriginal.txt') as infile, open('mylogconerrores.txt', 'w') as outfile:
for r in serv:
for line in infile:
if r in line:
outfile.write(line)
print ("fin")
input ()
Cuando intento poner el segundo if para que dentro de la primera seleccion de linias solo me guarde las que tambien contengan las palabras clave contenidas en la lista "var" me peta.Se cierra la consola de python de golpe y no me tira error.(edito con el idle que viene por defecto).No se como mostrarte el error que me pides.
Gracias y sorry por el zarpazo
Por si le sirve a alguien :
Busca en un log linia por linia la info que nos interesa, en el ejemplo servidores... serv1 serv2.... una vez que encuentra las linias , solo nos interesan las que contengan información concreta, en este ejemplo carpetas... "home","carpetaspersonales"......
serv = ("serv1","serv2","serv3")
var = ("home","carpetaspersonales")
for r in serv:
with open('mylogoriginal.txt') as infile, open('mylogconerrores.txt',mode = 'a') as outfile:
for line in infile:
if r in line:
for x in var:
if x in line:
outfile.write(line)
print ("Fin")
input ()
Seguro que hay una manera de hacerlo mas elegante o mejor o mas rapido.Si alguien la quiere compartir mejor. Lo posteo por si puede ayudar !
Saludos!