IO.UnsupportedOperation: Error no escribible en Python
Python es muy eficiente para leer y escribir datos de archivos. Tiene una variedad de funciones para ayudar en el manejo de archivos.
Los conceptos básicos del manejo de archivos implican abrir un archivo usando la función open()
y leer o escribir datos según el modo de archivo.
El open()
abre un archivo dado y crea un objeto de archivo que se puede usar para realizar operaciones de lectura y escritura en un archivo.
El archivo se puede abrir en diferentes tipos de modos. Por defecto, abre el archivo en modo lectura.
Este tutorial discutirá el error io.UnsupportedOperation: not writable
en Python y las formas de solucionarlo.
Solucione el error io.UnsupportedOperation: no se puede escribir
en Python
Este error se produce cuando intentamos realizar la operación de escritura
sobre un archivo abierto en modo lectura. Un archivo abierto en modo lectura solo puede leer el contenido.
Por ejemplo:
with open("sample.txt", "r") as f:
f.write("Text")
Producción :
io.UnsupportedOperation: not writable
Tenga en cuenta que en el ejemplo anterior, abrimos el archivo en modo r
(lectura) e intentamos escribir algunos datos en este archivo usando la función escribir()
, lo que provoca el error.
Recuerde abrir el archivo en modos que admitan esta operación para solucionar esto. Los modos escribir (w
) o agregar (a
) se utilizan para escribir algunos datos en un archivo.
Los contenidos anteriores se truncan si abrimos el archivo en modo w
. El modo a
añade contenido al final del archivo y conserva los datos anteriores.
Por ejemplo:
with open("sample.txt", "w") as f:
f.write("Text")
En el ejemplo anterior, evitamos con éxito los errores y podemos escribir datos en el archivo.
Si queremos leer y escribir datos de un archivo simultáneamente, podemos usar el modo r+b
. Podemos realizar operaciones de lectura y escritura en modo binario cuando el archivo se abre en este modo.
Por ejemplo:
with open("sample.txt", "r+b") as f:
f.write(bytes("Text", "utf-8"))
Tenga en cuenta que escribimos datos como bytes ya que el archivo se abre en modo binario. El texto está codificado como bytes en la codificación utf-8
en el ejemplo anterior.
Alternativamente, también podemos usar la función writable()
para verificar si podemos realizar operaciones de escritura usando el identificador de archivo o no. Devuelve True
o False
.
Vea el código a continuación.
with open("sample.txt", "r") as f:
print(f.writable())
with open("sample.txt", "a") as f:
print(f.writable())
Producción :
False
True
El ejemplo anterior muestra que la función writable
devuelve False
cuando el archivo se abre en modo r
y devuelve True
cuando el archivo se abre en modo a
.
Conclusión
Para concluir, discutimos la causa detrás del error io.UnsupportedOperation: not writable
y cómo solucionarlo. Discutimos cómo abrir el archivo en el modo incorrecto puede causar esto y qué modos de archivo admiten operaciones de escritura.
También demostramos el uso de la función escribible
que se puede usar para verificar si un objeto de archivo puede realizar operaciones de escritura o no.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python