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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Error al querer leer el último registro en archivo .txt [python]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Error al querer leer el último registro en archivo .txt [python]  (Leído 8,758 veces)
DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Error al querer leer el último registro en archivo .txt [python]
« en: 25 Marzo 2018, 23:42 pm »

Hola, ¿cómo están?
Créame que lo intente de muchas maneras y no encuentro enmendar el error. -
Tengo un archivo de texto que contiene lo siguiente:
1  123
2  345
3  567
4  789
Tengo que establecer el próximo código que sí o si tiene que ser 5, no puedo contar las líneas porque
el programa tiene la posibilidad de borrar una línea:
1  123
2  345
4  789
Si cuento las lineas el código seria 3+1=4 y el 4 estaría repetido cosa que no puede ocurrir porque lo
utilizo para la búsqueda. -
Lo que ocurre es que si tengo más de una línea el programa funciona correctamente, pero si tengo un
Solo registro me da error, tmp aparece vacío. -

Esta es la función:
Código
  1. def establecer_codigo():
  2.    archivo = abrir_lectura()
  3.    tmp = archivo.readlines()[-1]
  4.    tmp = tmp.split()
  5.    codigo = int(tmp[0])
  6.    archivo.close()
  7.  
  8.    return codigo

Saludos.
Daniel


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Error al querer leer el último registro en archivo .txt [python]
« Respuesta #1 en: 26 Marzo 2018, 00:53 am »

No entiendo lo que quieres hacer, pero lo ideal sería leer lineas de atrás hacia adelante

Código:
for linea in archivo.readlines()archivo.readlines()[-::1]: # lee El Array desde el final
  tmp = linea.strip()
  if not temp: # si la línea quedó en blanco
    continue # ir al siguiente valor del for

  #aqui tienesla Ultima línea no en blanco
   


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: Error al querer leer el último registro en archivo .txt [python]
« Respuesta #2 en: 26 Marzo 2018, 01:11 am »

Hola, Angel lex, gracias por ocuparte.
Como te puedo explicar para que lo entiendas, lo voy a intentar:
Tengo que generar un código nuevo cada vez que se intenta ingresar un nuevo registro, el caso es que si el archivo tiene un solo registro me da error y si tiene 2 o más todo bien. -

El error:
Citar
raceback (most recent call last):
 File "basesDatos.py", line 138, in <module>
   menu_uno()
 File "basesDatos.py", line 29, in menu_uno
   agregar()
 File "basesDatos.py", line 65, in agregar
   codigo = establecer_codigo()
 File "basesDatos.py", line 108, in establecer_codigo
   codigo = int(tmp[0])
IndexError: list index out of range
Por ello aclaraba que si hay un solo registro tmp aparece vacío. -
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Error al querer leer el último registro en archivo .txt [python]
« Respuesta #3 en: 26 Marzo 2018, 01:22 am »

con el mismo codigo que te di, solo less el ultimo numero y agregas 1, no importa que se borran numeros intermedios, siempre tendrás el ultimo posible (tipo mysql autoincrement pero más rustico)
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: Error al querer leer el último registro en archivo .txt [python]
« Respuesta #4 en: 26 Marzo 2018, 02:16 am »

Perdón por la ignorancia pero me da un error de sintaxis, me podrías decir en que estoy pifiando. -

Código
  1. def establecer_codigo():
  2. archivo = abrir_lectura()
  3. for linea in archivo.readlines()archivo.readlines()[-::1]: # lee El Array desde el final
  4. tmp = linea.strip()
  5. if not tmp: # si la línea quedó en blanco
  6. continue # ir al siguiente valor del for
  7.  
  8. codigo = int(tmp[0])
  9. archivo.close()
  10. return codigo
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Error al querer leer el último registro en archivo .txt [python]
« Respuesta #5 en: 26 Marzo 2018, 02:37 am »

exactamente que error te da?
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: Error al querer leer el último registro en archivo .txt [python]
« Respuesta #6 en: 26 Marzo 2018, 02:41 am »

 :huh:
« Última modificación: 27 Marzo 2018, 14:37 pm por DanielPy » En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Error al querer leer el último registro en archivo .txt [python]
« Respuesta #7 en: 26 Marzo 2018, 02:50 am »

estoy desde el cel, no vi este error (que deberías haverlo visto al marcartelo el python XD)

Código:
for linea in archivo.readlines()archivo.readlines()[-::1]:

archivo.readlines() está 2 veces seguidas

Código:
for linea in archivo.readlines()[-::1]:
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: Error al querer leer el último registro en archivo .txt [python]
« Respuesta #8 en: 26 Marzo 2018, 03:07 am »

 :huh:
« Última modificación: 27 Marzo 2018, 14:36 pm por DanielPy » En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Error al querer leer el último registro en archivo .txt [python]
« Respuesta #9 en: 26 Marzo 2018, 03:43 am »

no veo el error

para qué compilas? por qué no simplemente ejecutas?
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Archivo binario, al leerlo me muestra 2 veces el ultimo registro
Programación C/C++
.:BlackCoder:. 6 8,185 Último mensaje 13 Marzo 2011, 05:58 am
por .:BlackCoder:.
leer archivo con python
Scripting
poeta3d 1 3,525 Último mensaje 18 Diciembre 2011, 04:53 am
por 0x5d
[Python] Error leer archivo
Scripting
Arnau27 4 5,489 Último mensaje 1 Mayo 2012, 11:39 am
por 0x5d
Leer registro encabezado de archivo | C
Programación C/C++
milx86 4 4,440 Último mensaje 22 Octubre 2014, 19:29 pm
por avesudra
[Ayuda]Problema al querer leer JSON hecho PHP desde Java
Java
PabloPbl 3 3,810 Último mensaje 19 Octubre 2018, 03:32 am
por WHK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines