[ Foro de Python ]

for linea in fichero.readlines()

29-Sep-2025 19:32
Invitado (pepede)
2 Respuestas

Hola a todos:
Tengo el siguiente código:
diario=open('diario.txt', 'r')
lineas=diario.readlines ()#Tiene 9 líneas
for linea in lineas:
   # Calculo la posición del primer ';'
   coma1=linea.find(';')
   if linea.strip()!=' ':
       print('NºL:',num_lin,datetime.strptime(linea[0:coma1],'%d/%m/%y'))
       num_lin+=1
   else:
       print('vacio',linea)
Como separador de campo en cada línea utilizo un ';'
En coma1 guardo la posición del primer ';' de la línea
Pinta los NºdeL y la línea hasta que intenta pintar la línea 9 que no existe, entonces
da error
for linea in lineas debería acabar cuando lee la última línea, ¿no?
Gracias
Pablo


29-Sep-2025 21:07
Nacho Cabanes (+84)

¿Puede ser que tengas una línea en blanco al final del fichero y que, por tanto, no tenga ese separador?

Si te parece, "copia y pega" un fichero de datos de ejemplo para poder hacer pruebas, porque no basta con saber que "da error", sino que es importante ver el mensaje de error.


02-Oct-2025 18:55
Invitado (xuso)

hola pepede

   - si no usas with al menos cierra el archivo
   - ese if no te funciona, usa la salida de find
     para saber si no encontro el fin de fecha

saludos ;-)






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...