elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Solucionado [python] Salto de linea en lectura de fichero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Solucionado [python] Salto de linea en lectura de fichero  (Leído 16,753 veces)
tonilogar

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Solucionado [python] Salto de linea en lectura de fichero
« en: 26 Noviembre 2010, 00:28 am »

Quiero hacer una lista con los datos de un fichero *.txt
Los únicos datos que me interesan son los dígitos del 2 al 10 de cada linea (los que están en negrita).

Pero la primera linea del fichero no me interesa.
¿Como se salta una linea?...
Tengo entendido que es con "\n"....pero he intentado todas las combinaciones inimaginables y na de na.

Este es el contenido del txt:

(I10,X,A)                          

  81680775 2009242021570722HR4.tif                          

  81680773 2009242021570721HR4.tif                          

  81680771 2009242021570720HR4.tif                          

  81680769 2009242021570719HR4.tif                          

  81680767 2009242021570718HR4.tif



Código
  1. #Creo una lista vacía
  2. lista_iad=[]
  3.  
  4. #Abro el fichero y añado a la lista_iad
  5. >>> with open("bloc5C.iad",encoding="utf-8") as fichero_iad:
  6. for line in fichero_iad:
  7. lista_iad.append(line[2:10]+".msk")
  8.  
  9. >>> lista_iad
  10. ['10,X,A) .msk', '81680775.msk', '81680773.msk', '81680771.msk', '81680769.msk', '81680767.msk']


Un saludo y gracias por vuestro tiempo.


« Última modificación: 26 Diciembre 2010, 01:29 am por tonilogar » En línea

No porque discrepe de tu opinión intento ofenderte.

Un saludo a todos y gracias por vuestro tiempo.
tonilogar

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: [python] Salto de linea en lectura de fichero
« Respuesta #1 en: 26 Noviembre 2010, 01:00 am »

Bueno lo arreglo con una chapuza:
Borro el primer valor de la lista.
Pero no es muy ortodoxo que digamos ¿no?

Código
  1. #Abro el fichero y añado a la lista_iad
  2. >>> with open("bloc5C.iad",encoding="utf-8") as fichero_iad:
  3.   for line in fichero_iad:
  4.      lista_iad.append(line[2:10]+".msk")
  5. >>> lista_iad
  6. ['10,X,A) .msk', '81680775.msk', '81680773.msk', '81680771.msk', '81680769.msk', '81680767.msk']
  7.  
  8. >>> del lista_iad [0]
  9. >>> lista_iad
  10. ['81680775.msk', '81680773.msk', '81680771.msk', '81680769.msk', '81680767.msk']

Un saludo y gracias por vuestro tiempo.


« Última modificación: 26 Noviembre 2010, 12:01 pm por Novlucker » En línea

No porque discrepe de tu opinión intento ofenderte.

Un saludo a todos y gracias por vuestro tiempo.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [python] Salto de linea en lectura de fichero
« Respuesta #2 en: 26 Noviembre 2010, 13:44 pm »

http://docs.python.org/library/fileinput.html#fileinput.isfirstline :P

Aunque no me parece tan chapuza quitar la primera línea, de hecho, me parece menos chapuza que utilizar el índice absoluto para obtener lo que hay que procesar (line[2:10]), si intentas con expresiones regulares? :P

Saludos

En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
tonilogar

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: [python] Salto de linea en lectura de fichero
« Respuesta #3 en: 26 Noviembre 2010, 19:10 pm »

Gracias Novlucker este fin de semana me empollo la información.

Perdón por preguntas tan obvias pero mi ingles es very orribilososus
En línea

No porque discrepe de tu opinión intento ofenderte.

Un saludo a todos y gracias por vuestro tiempo.
tonilogar

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: [python] Salto de linea en lectura de fichero
« Respuesta #4 en: 17 Diciembre 2010, 01:49 am »

Pues estoy con las expresiones regulares. Y mas o menos las voy pillando .
Pero no se como colarlas para que me añada el texto con el filtro a la lista.

En principio la expresión regular seria una de estas dos a gusto.

r"\b8.......\b"   # un string que empieza por 8+siete dígitos.
r"\b8\d{7}\b"  # un string que empieza por 8+siete dígitos numéricos.

He probado con pattern y search pero no me aclaro.

Un saludo y gracias por vuestro tiempo.

Y sigo con la expresiones regulares que tienen miga.

En línea

No porque discrepe de tu opinión intento ofenderte.

Un saludo a todos y gracias por vuestro tiempo.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [python] Salto de linea en lectura de fichero
« Respuesta #5 en: 17 Diciembre 2010, 11:12 am »

findall :D

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
tonilogar

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: [python] Salto de linea en lectura de fichero
« Respuesta #6 en: 26 Diciembre 2010, 01:28 am »

Gracias  Novlucker.

Gracias a tu ayuda y un amigo pythoniano he comprendido  mejor el modulo re
Aquí esta la solución:

>>> patron = re.compile(r"\b8.......\b")
>>> with open("bloc5C.iad",encoding="utf-8") as file_iad:
   lines = file_iad.read()
   coincidencias = patron.findall(lines)
>>> coincidencias
['81460710', '81460709', '81460708', '81460707']
En línea

No porque discrepe de tu opinión intento ofenderte.

Un saludo a todos y gracias por vuestro tiempo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[python] Linea de salto.
Scripting
Meta 1 43,014 Último mensaje 1 Octubre 2010, 23:33 pm
por [L]ord [R]NA
Lectura de Línea a Línea de un archivo de números enteros en C++
Programación C/C++
julian21931500 7 8,689 Último mensaje 25 Febrero 2015, 04:11 am
por julian21931500
Python, print genera salto de linea.
Scripting
#Aitor 5 6,452 Último mensaje 21 Noviembre 2017, 18:01 pm
por NOB2014
Archivos en Python, Salto de línea y búsqueda.
Scripting
NOB2014 2 3,889 Último mensaje 23 Noviembre 2017, 23:10 pm
por NOB2014
Grabar salto de linea en un fichero.
Programación C/C++
gastongaston 4 1,319 Último mensaje 3 Octubre 2018, 16:41 pm
por gastongaston
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines