Python - Error Python en open w invalid file : <_io.TextIOWrapper name='...' encoding='cp1252'

   
Vista:

Error Python en open w invalid file : <_io.TextIOWrapper name='...' encoding='cp1252'

Publicado por Carlos (2 intervenciones) el 09/10/2014 22:55:44
Hola
haber si alguien sabe porqué se produce este error, al intentar crear un archivo con open "w" en Python, este es el error:

Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:18:40) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Traceback (most recent call last):
File "C:\Documents and Settings\cuenta prueba de htm\Mis documentos\curso_python\leccion_31_escribir_archivos_tkinter_filedialog.py", line 14, in <module>
escritor=open(para_archivo, "w")
TypeError: invalid file: <_io.TextIOWrapper name='C:/Documents and Settings/cuenta prueba de htm/Mis documentos/curso_python/biedma_copia' mode='w' encoding='cp1252'>
>>>

Este es el código que genera este error:

import tkinter.filedialog
''' importamos el modulo tkinter y el submodulo filedialog'''
'''Llamamos a la funcion askopenfilename(), se nos abrira una ventana para buscar
el archivo que queremos abrir'''
desde_archivo=tkinter.filedialog.askopenfilename()
'''nos guarda la ruta del archivo en la variable desde_archivo'''
para_archivo=tkinter.filedialog.asksaveasfile()
'''nos saldrá una ventana para guardar el archivo vacio cuando se ejecute el open , y la variable para_archivo
tendra el valor de la ruta del archivo creado'''
lector=open(desde_archivo, "r")
contenidos=lector.read()
lector.close()
'''cierra el archivo asociado a la variable lector'''
escritor=open(para_archivo, "w")
escritor.write("copia\n")
'''escribimos el texto copia con un salto de pagina \n en el archivo asociado a la variable escritor'''
escritor.write(contenidos)
'''escribe el contenido de la variable contenidos en el archivo asociado a la variable escritor'''
escritor.close()

Uso windows xp

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Error Python en open w invalid file : <_io.TextIOWrapper name='...' encoding='cp1252'

Publicado por xve (1235 intervenciones) el 15/10/2014 08:36:40
Hola Carlos, entiendo que la variable para_archivo, no es un nombre de archivo...

Si haces un:
1
print (para_archivo)

Que te devuelve?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error Python en open w invalid file : <_io.TextIOWrapper name='...' encoding='cp1252'

Publicado por Carlos (2 intervenciones) el 17/10/2014 01:54:08
Hola xve
gracias por contestar.
Gracias a tu pregunta me ha dado pistas para averiguar el error.
para_archivo me devolvia esto:
<_io.TextIOWrapper name='C:/Documents and Settings/cuenta prueba de htm/Mis documentos/curso_python/biedma_copia' mode='w' encoding='cp1252'>

Entonces he pensado jode que raro, si solo me tendria que devolver esto:
'C:/Documents and Settings/cuenta prueba de htm/Mis documentos/curso_python/biedma_copia'

He mirado lo que me devolvia, desde_archivo y era esto:
C:/Documents and Settings/cuenta prueba de htm/Mis documentos/curso_python/biedma.txt

Por lo que desde_archivo estaba bien y para_archivo estaba mal. Entonces me he fijado en la linea de codigo
que generaba la variable para_archivo, ahi estaba el problema:

para_archivo=tkinter.filedialog.asksaveasfilename()

Le faltaba la palabra name.

Asi que solucionado, gracias de nuevo.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Error Python en open w invalid file : <_io.TextIOWrapper name='...' encoding='cp1252'

Publicado por xve (1235 intervenciones) el 17/10/2014 10:24:24
Gracias por comentarlo Carlos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar