Autor
|
Tema: Error al querer leer el último registro en archivo .txt [python] (Leído 8,721 veces)
|
DanielPy
Desconectado
Mensajes: 145
|
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: def establecer_codigo(): archivo = abrir_lectura() tmp = archivo.readlines()[-1] tmp = tmp.split() codigo = int(tmp[0]) archivo.close() 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
|
No entiendo lo que quieres hacer, pero lo ideal sería leer lineas de atrás hacia adelante 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
Mensajes: 145
|
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: 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
|
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
Mensajes: 145
|
Perdón por la ignorancia pero me da un error de sintaxis, me podrías decir en que estoy pifiando. - def establecer_codigo(): archivo = abrir_lectura() for linea in archivo.readlines()archivo.readlines()[-::1]: # lee El Array desde el final tmp = linea.strip() if not tmp: # si la línea quedó en blanco continue # ir al siguiente valor del for codigo = int(tmp[0]) archivo.close() 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
|
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
Mensajes: 145
|
|
|
« Ú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
|
estoy desde el cel, no vi este error (que deberías haverlo visto al marcartelo el python XD) for linea in archivo.readlines()archivo.readlines()[-::1]: archivo.readlines() está 2 veces seguidas 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
Mensajes: 145
|
|
|
« Ú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
|
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.
|
|
|
|
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,173
|
13 Marzo 2011, 05:58 am
por .:BlackCoder:.
|
|
|
leer archivo con python
Scripting
|
poeta3d
|
1
|
3,517
|
18 Diciembre 2011, 04:53 am
por 0x5d
|
|
|
[Python] Error leer archivo
Scripting
|
Arnau27
|
4
|
5,474
|
1 Mayo 2012, 11:39 am
por 0x5d
|
|
|
Leer registro encabezado de archivo | C
Programación C/C++
|
milx86
|
4
|
4,420
|
22 Octubre 2014, 19:29 pm
por avesudra
|
|
|
[Ayuda]Problema al querer leer JSON hecho PHP desde Java
Java
|
PabloPbl
|
3
|
3,785
|
19 Octubre 2018, 03:32 am
por WHK
|
|