Leer y escribir archivos con Python

Probablemente una de las operaciones mas comunes que realizas cuando implementas un script o una aplicación en #Python o en cualquier otro lenguaje de programación, es la de leer y escribir archivos.

En Python verás que es realmente sencillo tanto leer, como escribir archivos. Así en esta nueva Pyldora Pythonica, te muestro como hacerlo de forma sencilla.

Leer y escribir archivos con Python

Leer y escribir archivos con Python

¿Como puedo leer un archivo en Python?

Puede leer un archivo en Python usando la función open() y el método read(). Aquí hay un ejemplo que muestra cómo leer el contenido de un archivo llamado «archivo.txt»:

with open("archivo.txt", "r") as f:
    contenido = f.read()
    print(contenido)

La primera línea abre el archivo en modo de lectura («r») y lo asigna a un objeto de archivo llamado f. Luego, se usa el método read() para leer el contenido del archivo y se almacena en una variable llamada contenido. Finalmente, se imprime el contenido del archivo.

El uso de with es una buena práctica para asegurarse de que el archivo se cierre automáticamente después de leerlo, incluso si ocurre una excepción.

También puede leer un archivo línea por línea en Python usando el método readline() o usar un bucle for con el objeto de archivo. Aquí hay un ejemplo:

with open("archivo.txt", "r") as f:
    for linea in f:
        print(linea)

En este ejemplo, el bucle for itera sobre el objeto de archivo f y cada iteración imprime una línea del archivo.

¿y en el caso de que esté codificado con utf-8?

Si el archivo está codificado en UTF-8, puede especificar la codificación al abrirlo usando la opción encoding=»utf-8″. Aquí hay un ejemplo:

with open("archivo.txt", "r", encoding="utf-8") as f:
    contenido = f.read()
    print(contenido)

De esta manera, Python puede decodificar el contenido del archivo en UTF-8 antes de leerlo y almacenarlo en la variable contenido. Esto es especialmente útil si el archivo contiene caracteres especiales o no latinos que no están codificados en ASCII.

¿como se puede leer un archivo binario, como una imagen o un audio?

Si el archivo es un archivo binario (por ejemplo, una imagen, un sonido o un archivo comprimido), no se puede leer directamente como texto. En su lugar, se deben leer los bytes del archivo y, a continuación, decodificarlos o procesarlos de alguna manera adecuada.

Para leer un archivo binario, puede abrirlo en modo binario («b») y leer los bytes usando el método read(). Aquí hay un ejemplo:

with open("archivo.bin", "rb") as f:
    contenido = f.read()
    print(contenido)

En este ejemplo, se abre el archivo en modo binario («rb») y se lee el contenido completo del archivo en un objeto de bytes llamado contenido. La variable contenido contiene los bytes binarios del archivo, que pueden ser decodificados o procesados según sea necesario.

Es importante tener en cuenta que el contenido binario no se puede imprimir directamente, ya que puede contener valores de bytes no imprimibles o caracteres especiales que no se representan correctamente en la consola. En su lugar, puede usar una función de depuración o una biblioteca específica para procesar el contenido binario.

¿como puedo escribir un archivo en Python?

Puedes escribir un archivo en Python usando el método write() de un objeto de archivo abierto en modo de escritura («w»). Aquí hay un ejemplo de escritura de un archivo de texto:

with open("archivo.txt", "w") as f:
    f.write("Hola mundo")

En este ejemplo, se abre un archivo llamado archivo.txt en modo de escritura («w»). Si el archivo ya existe, su contenido anterior será sobrescrito. Si no existe, se creará un nuevo archivo. A continuación, se escriben los caracteres «Hola mundo» en el archivo usando el método write().

También es posible escribir un archivo binario en Python usando el modo binario («wb») y escribiendo un objeto de bytes en lugar de una cadena de caracteres. Aquí hay un ejemplo:

with open("archivo.bin", "wb") as f:
    f.write(b"\x01\x02\x03")

En este ejemplo, se abre un archivo llamado archivo.bin en modo binario («wb») y se escriben los bytes 0x01, 0x02 y 0x03 en el archivo. Es importante tener en cuenta que los bytes deben escribirse como un objeto de bytes, por lo que deben precederse de la letra b.

¿Como puedo cambiar los permisos de un archivo o un directorio en Python?

Puedes cambiar los permisos de un archivo en Python usando la función os.chmod() del módulo os. La función os.chmod() recibe dos argumentos: la ruta del archivo y un número octal que representa los permisos.

Por ejemplo, para dar permisos de lectura y escritura al propietario del archivo y sólo permisos de lectura a los demás, puedes hacer lo siguiente:

import os

os.chmod("archivo.txt", 0o644)

En este ejemplo, se usa el número octal 0o644 para especificar que el propietario del archivo tiene permisos de lectura (6) y escritura (4), y los demás sólo tienen permisos de lectura (4).

Es posible especificar permisos adicionales como los permisos de ejecución para el propietario, los permisos de escritura para el grupo, etc. Por ejemplo, para dar permisos de lectura, escritura y ejecución al propietario, permisos de lectura y ejecución al grupo y sólo permisos de lectura a los demás, puedes hacer lo siguiente:

import os

os.chmod("archivo.txt", 0o755)

En este ejemplo, se usa el número octal 0o755 para especificar que el propietario del archivo tiene permisos de lectura (7), escritura (5) y ejecución (5), el grupo tiene permisos de lectura (5) y ejecución (5), y los demás sólo tienen permisos de lectura (5).

El vídeo

Lo mismo que te he contado hasta aquí pero en formato vídeo


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *