Operaciones de archivos en Python – Leer y escribir en archivos con Python

En este tutorial, trabajaremos en las diferentes operaciones de archivos en Python. Revisaremos cómo usar Python para leer un archivo, escribir en un archivo, eliminar archivos y mucho más. Así que sin más demora, empecemos.

Trabajando con Archivos en Python

En el tutorial anterior, utilizamos la consola para ingresar datos. Ahora, estaremos tomando datos de un archivo. Esto significa que leeremos desde archivos y escribiremos en ellos. Para hacerlo, necesitamos seguir algunos pasos. Estos son

  1. Abrir un archivo
  2. Tomar datos de ese archivo / Escribir datos en ese archivo
  3. Cerrar el archivo

También aprenderemos algunas operaciones útiles, como copiar y eliminar archivos.

¿Por qué son necesarias las operaciones de archivos en Python?

Cuando trabajamos con conjuntos de datos grandes en problemas de aprendizaje automático, trabajar con archivos es una necesidad básica. Dado que Python es un lenguaje ampliamente utilizado en ciencia de datos, es necesario ser competente en las diversas operaciones de archivos que ofrece Python.

Entonces, exploremos algunas de las operaciones de archivos en Python aquí.

1. Abrir un archivo en Python con la función open()

El primer paso para trabajar con archivos en Python es aprender cómo abrir un archivo. Puedes abrir archivos utilizando el método open().

La función open() en Python acepta dos argumentos. El primero es el nombre del archivo junto con la ruta completa y el segundo es el modo de apertura del archivo.

A continuación, he enumerado algunos de los modos de lectura comunes para archivos:

  • ‘r’ : Este modo indica que el archivo se abrirá solo para lectura
  • ‘w’ : Este modo indica que el archivo se abrirá solo para escritura. Si el archivo con ese nombre no existe, se creará uno nuevo
  • ‘a’ : Este modo indica que la salida de ese programa se agregará a la salida anterior de ese archivo
  • ‘r+’ : Este modo indica que el archivo se abrirá tanto para lectura como para escritura

Además, para el sistema operativo Windows, puedes agregar ‘b’ para acceder al archivo en formato binario. Esto se debe a que Windows diferencia entre un archivo de texto binario y un archivo de texto regular.

Supongamos que colocamos un archivo de texto llamado ‘file.txt’ en el mismo directorio donde se encuentra nuestro código. Ahora queremos abrir ese archivo.

Sin embargo, la función open(filename, mode) devuelve un objeto de archivo. Con ese objeto de archivo, puedes proceder con tus operaciones adicionales.

#directorio:   /home/imtiaz/code.py
text_file = open('file.txt','r')

#Otro método utilizando la ubicación completa
text_file2 = open('/home/imtiaz/file.txt','r')
print('First Method')
print(text_file)

print('Second Method')
print(text_file2)

El resultado del siguiente código será

================== RESTART: /home/imtiaz/code.py ==================
First Method

Second Method

>>>

2. Leer y escribir en archivos en Python

Python ofrece varios métodos para leer y escribir en archivos, donde cada función se comporta de manera diferente. Una cosa importante a tener en cuenta es el modo de operaciones del archivo. Para leer un archivo, debes abrirlo en modo de lectura o escritura. Mientras que para escribir en un archivo en Python, necesitas que el archivo esté abierto en modo de escritura.

Aquí hay algunas funciones en Python que te permiten leer y escribir en archivos:

  • read() : Esta función lee todo el archivo y devuelve una cadena
  • readline() : Esta función lee líneas de ese archivo y las devuelve como una cadena. Extrae la línea n, si se llama por n-ésima vez.
  • readlines() : Esta función devuelve una lista donde cada elemento es una sola línea de ese archivo.
  • readlines() : Esta función devuelve una lista donde cada elemento es una sola línea de ese archivo.
  • write() : Esta función escribe una secuencia fija de caracteres en un archivo.
  • writelines() : Esta función escribe una lista de cadenas.
  • append() : Esta función agrega una cadena al archivo en lugar de sobrescribirlo.

Tomemos un archivo de ejemplo llamado “abc.txt” y leamos líneas individuales del archivo con un bucle for:

#abrir el archivo
text_file = open('/Users/pankaj/abc.txt','r')

#obtener la lista de líneas
line_list = text_file.readlines();

#por cada línea de la lista, imprimir la línea
for line in line_list:
    print(line)

text_file.close() #no olvides cerrar el archivo

Salida:

Ahora que sabemos cómo leer un archivo en Python, avancemos y realicemos una operación de escritura aquí con la función writelines().

#abrir el archivo
text_file = open('/Users/pankaj/file.txt','w')

#inicializar una lista vacía
word_list= []

#iterar 4 veces
for i in range (1, 5):
    print("Please enter data: ")
    line = input() #tomar entrada
    word_list.append(line) #agregar a la lista


text_file.writelines(word_list) #escribir 4 palabras en el archivo

text_file.close() #no olvides cerrar el archivo

Salida

3. Copiar archivos en Python usando el método shutil()

Podemos usar el módulo shutil para copiar archivos en Python. Esta utilidad nos permite realizar operaciones de copia y movimiento en Python en diferentes archivos. Trabajemos en esto con un ejemplo:

import shutil

shutil.copy2('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copy2.txt')

#otra forma de copiar un archivo

shutil.copyfile('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copyfile.txt')

print("File Copy Done")

4. Eliminar archivos en Python con el método shutil.os.remove()

El módulo shutil de Python ofrece el método remove() para eliminar archivos del sistema de archivos. Veamos cómo podemos realizar una operación de eliminación en Python.

import shutil
import os

#dos formas de eliminar un archivo
shutil.os.remove('/Users/pankaj/abc_copy2.txt')

os.remove('/Users/pankaj/abc_copy2.txt')

5. Cerrar un archivo abierto en Python con el método close()

Cuando abres un archivo en Python, es extremadamente importante cerrar el archivo después de realizar los cambios. Esto guarda los cambios que has realizado previamente, elimina el archivo de la memoria y evita cualquier lectura o escritura adicional dentro del programa.

Sintaxis para cerrar un archivo abierto en Python:

fileobject.close()

Si continuamos desde nuestros ejemplos anteriores donde leíamos archivos, así es como cerrarías el archivo:

text_file = open('/Users/pankaj/abc.txt','r')
# algunas operaciones de archivo aquí

text_file.close()

Además, puedes evitar cerrar archivos manualmente si utilizas el bloque with. Tan pronto como se ejecuta el bloque with, los archivos se cierran y ya no están disponibles para la lectura y escritura.

6. Python FileNotFoundError

Es común recibir el FileNotFoundError al trabajar con archivos en Python. Se puede evitar fácilmente proporcionando rutas de archivo completas al crear el objeto de archivo.

  File "/Users/pankaj/Desktop/string1.py", line 2, in <module>
    text_file = open('/Users/pankaj/Desktop/abc.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pankaj/Desktop/abc.txt'

Para solucionar el FileNotFoundError, simplemente verifica que la ruta que has mencionado para el método de apertura de archivo sea correcta.

Conclusión

Estas son las operaciones de archivos en Python. Hay muchas más formas de utilizar archivos en Python, que incluyen la lectura de datos CSV y más. Aquí tienes un artículo sobre cómo puedes usar el módulo Pandas para leer conjuntos de datos CSV en Python.

I hope you enjoyed reading the article! Happy learning 🙂

**Referencias:
**
**https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files

Source:
https://www.digitalocean.com/community/tutorials/python-read-file-open-write-delete-copy