Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Arnau27 en 4 Enero 2012, 16:25 PM

Título: Problema escribiendo un archivo en Python
Publicado por: Arnau27 en 4 Enero 2012, 16:25 PM
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
Título: Re: Problema escribiendo un archivo en Python
Publicado por: $Edu$ en 4 Enero 2012, 16:51 PM
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.
Título: Re: Problema escribiendo un archivo en Python
Publicado por: adastra en 4 Enero 2012, 17:30 PM
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.
Título: Re: Problema escribiendo un archivo en Python
Publicado por: Trenico en 4 Enero 2012, 23:25 PM
Cambia el:

Código (python) [Seleccionar]
logfile.write(Y)

Por:

Código (python) [Seleccionar]
txt.write(Y)
Título: Re: Problema escribiendo un archivo en Python
Publicado por: Arnau27 en 5 Enero 2012, 20:55 PM
Cita de: Trenico en  4 Enero 2012, 23:25 PM
Cambia el:

Código (python) [Seleccionar]
logfile.write(Y)

Por:

Código (python) [Seleccionar]
txt.write(Y)

Me sigue dando el mismo error no lo entiendo...
Título: Re: Problema escribiendo un archivo en Python
Publicado por: $Edu$ en 5 Enero 2012, 21:03 PM
Leiste lo que te comente yo?
Título: Re: Problema escribiendo un archivo en Python
Publicado por: 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.
Código (python) [Seleccionar]

txt=open(logfile, "w").write(datetime.datetime.now().ctime())


Mira esto....
Código (python) [Seleccionar]

>>> 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.
Código (python) [Seleccionar]
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!
Título: Re: Problema escribiendo un archivo en Python
Publicado por: Arnau27 en 8 Enero 2012, 12:46 PM
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.
Código (python) [Seleccionar]

txt=open(logfile, "w").write(datetime.datetime.now().ctime())


Mira esto....
Código (python) [Seleccionar]

>>> 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.
Código (python) [Seleccionar]
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