IO.UnsupportedOperation: Error no escribible en Python

Manav Narula 21 junio 2023
  1. Solucione el error io.UnsupportedOperation: no se puede escribir en Python
  2. Conclusión
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 Narula avatar Manav Narula avatar

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.

LinkedIn

Artículo relacionado - Python Error