Muy buenas, creo que el problema que tengo con el script es una tonteria aunque no consigo solucionarlo. :-[
import datetime
Y=(input('Escribe alguna cosa'))
txt=open(logfile, "w").write(datetime.datetime.now().ctime())
logfile.write(Y)
El script crea el archivo y escribe la fecha pero al introducir la variable Y me daAttributeError 'str' object has no atribute 'write'
Espero una solucion, gracias
No se nada de python y no comprendo mucho el codigo, pero hablas de problemas de atributos, que archivo estas queriendo escribir? fijate si tiene los atributos de Solo Lectura activado, tendras que sacarlo.
El file descriptor no es "logfile", ese es el contenido del fichero (texto) el fichero propiamente dicho es el que te retona la llamada a la función "open()" ese es el problema, estas usando la variable equivocada.
Cambia el:
logfile.write(Y)
Por:
txt.write(Y)
Cita de: Trenico en 4 Enero 2012, 23:25 PM
Cambia el:
logfile.write(Y)
Por:
txt.write(Y)
Me sigue dando el mismo error no lo entiendo...
Leiste lo que te comente yo?
Hola!
Creo que el problema es por como abres el archivo y escribes a la vez, por lo que la variable "que lo contiene"(en tu caso, txt) no tiene nada en su interior.
txt=open(logfile, "w").write(datetime.datetime.now().ctime())
Mira esto....
>>> x = open("lala", "w").write("hola")
>>> x
>>> x.write("alal")
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
x.write("alal")
AttributeError: 'NoneType' object has no attribute 'write'
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'x']
>>> print x
None
Creo que si lo dejas asi deberia bastar.
import datetime
Y=(input('Escribe alguna cosa'))
txt=open(logfile, "w")
txt.write(datetime.datetime.now().ctime())
txt.write(Y)
Por cierto, logfile es una variable que contiene el nombre del archivo a abrir, o es una cadena?(si es asi, faltan las comillas?)
Saludos!
Cita de: Jirp96 en 6 Enero 2012, 14:55 PM
Hola!
Creo que el problema es por como abres el archivo y escribes a la vez, por lo que la variable "que lo contiene"(en tu caso, txt) no tiene nada en su interior.
txt=open(logfile, "w").write(datetime.datetime.now().ctime())
Mira esto....
>>> x = open("lala", "w").write("hola")
>>> x
>>> x.write("alal")
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
x.write("alal")
AttributeError: 'NoneType' object has no attribute 'write'
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'x']
>>> print x
None
Creo que si lo dejas asi deberia bastar.
import datetime
Y=(input('Escribe alguna cosa'))
txt=open(logfile, "w")
txt.write(datetime.datetime.now().ctime())
txt.write(Y)
Por cierto, logfile es una variable que contiene el nombre del archivo a abrir, o es una cadena?(si es asi, faltan las comillas?)
Saludos!
Jirp96 gracias por tu ayuda