Foros del Web » Programando para Internet » Python »

Grabacion de archivos

Estas en el tema de Grabacion de archivos en el foro de Python en Foros del Web. Buenos dias, tengo un problema grabando dos archivos .txt hs = open ('C:\\Raiz\\Senyales\\historico_senyal.txt','a') sy = open ('C:\\Raiz\\Senyales\\senyal.txt','w') mi intención es que en el archivo abierto ...
  #1 (permalink)  
Antiguo 09/03/2011, 05:30
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Grabacion de archivos

Buenos dias, tengo un problema grabando dos archivos .txt

hs = open ('C:\\Raiz\\Senyales\\historico_senyal.txt','a')
sy = open ('C:\\Raiz\\Senyales\\senyal.txt','w')

mi intención es que en el archivo abierto con 'a' se vayan añadiendo registros y que al archivo abierto con 'w' me reescriba siempre sobre el primer registro y único.
Hago lo que dice en el tutorial de Python..., pero lo que hace exacatamente es lo mismo en los dos ficheros, es decir añade todos los registros... ¿me pueden ayudar?

‘w’ : write, escritura. Abre el archivo en modo escritura. Si el archivo no existe se crea. Si existe, sobreescribe el contenido.

Gracias.
  #2 (permalink)  
Antiguo 09/03/2011, 22:45
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Grabacion de archivos

Postea mas código de lo que estas tratando de hacer, al parecer todo debería de funcionar tal como lo describes. Pero sin mas código no podemos saber donde o que esta fallando.
  #3 (permalink)  
Antiguo 10/03/2011, 01:17
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Respuesta: Grabacion de archivos

Gracais, Razpeitia. Aqui te paso el codigo...

Código HTML:
Ver original
  1. def busqueda_en_tabla_60(cn):
  2.     cur =cn.cursor()
  3.     cur.execute("SELECT * from tabla_60")
  4.     filas = cur.fetchall() #selecciona en fila todos los registros que cumplen la condicion
  5.     if filas:
  6.         for fila in filas:
  7.             divisa, numrepeticiones = fila
  8.         grabar_senyal(divisa, numrepeticiones)
  9.         cur.close()
  10.  
  11. def grabar_senyal(divisa, numrepeticiones):
  12.     hs_fechahora=time.asctime()
  13.     hs_moneda=divisa
  14.     hs_numrepeticiones=str(numrepeticiones)
  15.    
  16.     #graba dos ficheros de salida
  17.     hs_linea_salida = hs_fechahora + ',' + hs_moneda + ',' + hs_numrepeticiones + "\n"
  18.     try:
  19.         hs.write(hs_linea_salida)
  20.     except:
  21.         print "no graba bien hs"
  22.     try:
  23.         sy.write(hs_linea_salida)
  24.     except:
  25.         print "no graba bien sy"
  26. #
  27. #Principal (inicio del proceso)
  28. #
  29. import psycopg2 #@UnresolvedImport
  30. global cn
  31. cn = psycopg2.connect("host=localhost dbname=my-data user=postgres password=xxxxxx")
  32. import time
  33. hs = open ('C:\\Raiz\\Senyales\\historico_senyal.txt','a')
  34. sy = open ('C:\\Raiz\\Senyales\\senyal.txt','w')
  35. count = 0
  36. while count < 100:
  37.    busqueda_en_tabla_60(cn)
  38.    count = count + 1
  39. print "proceso finalizado"
  40. hs.close()
  41. sy.close()
  #4 (permalink)  
Antiguo 10/03/2011, 07:02
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Grabacion de archivos

Todo parece bien excepto por la linea 8, donde solo estas grabando una vez.
  #5 (permalink)  
Antiguo 10/03/2011, 07:59
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Respuesta: Grabacion de archivos

Encontré el problema, y es que antes de la instruccion write necesitaba situar con sy.seek(0).

Cierto lo que me dices de la linea 8, ya lo modifiqué.

Gracias.

Etiquetas: grabacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:49.