Autor Tema: Manejo de archivos con python sobreescribir una sola línea  (Leído 14665 veces)

sil

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Necesito sobrescribir en una sola linea! pero si utilizo el "w" me borra absolutamente todo!!
y si utilizo el  r+ tambien

un ejemplo super simple:
en el archivo tengo los siguientes valores:

10
11
14
13
resulta que quiero cambiar el 14 por un 12! no se como sustituir el valor por el que ahora quiero!
« Última modificación: 14 de Septiembre 2014, 18:07 por Alex Rodríguez »

sil

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Re:Manejo de archivos con python
« Respuesta #1 en: 26 de Abril 2014, 08:56 »
me urge demasiaado!! por favor necesito ayudaaa!!

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Manejo de archivos con python
« Respuesta #2 en: 26 de Abril 2014, 19:31 »
Hola, por favor no repitas la misma pregunta en diferentes hilos del foro. Sobre la cuestión que comentas, lo primero que necesitas saber es qué línea del archivo quieres modificar. Supongamos que quieres modificar aquellas líneas que contengan 14 y cambiar ese 14 por un 12. Una forma de hacerlo sería leer los datos del archivo y guardarlos en un array, pero allí donde se detecte un 14 en vez de guardar el 14 guardamos el 12. Después escribimos el fichero (con lo cual destruimos lo existente anteriormente) con el contenido del nuevo array. No he probado el código con lo cual no te puedo asegurar que funcione a la primera. La idea sería un código así:

Código: [Seleccionar]
from array import *
# Lectura del contenido del fichero
try:
ins = open( "file.txt", "r" )
contenidoLinea = []
for line in ins:
if line == 14:
        insertamos = 12
    else:
        insertamos = line

    contenidoLinea.append( insertamos )
ins.close()
finally:
f.close()
except IOError:
pass



# Escritura del nuevo contenido del fichero
try:
# Escribimos el fichero
f = open("file.txt", "w")
try:
for idx, val in enumerate(contenidoLinea):
f.writelines(contenidoLinea[idx]) # Escribimos la línea
finally:
f.close()
except IOError:
pass


sil

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Re:Manejo de archivos con python
« Respuesta #3 en: 02 de Mayo 2014, 05:09 »
Disculpa  nunca he participado de foros jaja es que realmente me urgía tener una respuesta.. no vuelve a pasar :) pero muchas gracias realmente la lógica de su respuesta de destruir y volver a  escribir me ayudo mucho. muchas gracias :D

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Manejo de archivos con python
« Respuesta #4 en: 03 de Mayo 2014, 09:08 »
De nada, ya me extrañaba que no hubieras respondido  :D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".