Manejo de Archivos en Python
Introducción
Python proporciona diversas funciones y módulos para el manejo de archivos, lo que permite a los programadores realizar operaciones como lectura, escritura, creación y manipulación de archivos de manera efectiva. En esta documentación, exploraremos las principales funciones y conceptos relacionados con el manejo de archivos en Python.
Lectura de Archivos en Python
La lectura de archivos en Python es una tarea fundamental para procesar información almacenada en archivos de texto u otros formatos. A continuación, se describen los conceptos clave y las funciones utilizadas para leer archivos en Python.
1. Apertura de Archivos
La función principal para abrir un archivo en Python es open()
. Toma dos argumentos principales: el nombre del archivo y el modo de apertura. El modo de apertura indica la forma en que se desea interactuar con el archivo.
archivo = open('ejemplo.txt', 'r')
En este ejemplo, el modo 'r'
indica que el archivo se abrirá en modo lectura.
2. Lectura de Contenido
Una vez que el archivo está abierto, existen varias funciones para leer su contenido:
a. read(size)
La función read(size)
lee los primeros size
bytes del archivo y los retorna como una cadena.
contenido = archivo.read(100) # Lee los primeros 100 bytes del archivo
b. readline()
La función readline()
lee una línea completa del archivo y la retorna como una cadena.
linea = archivo.readline() # Lee una línea del archivo
c. readlines()
La función readlines()
lee todas las líneas del archivo y las retorna como una lista de cadenas.
lineas = archivo.readlines() # Lee todas las líneas del archivo
3. Cierre del Archivo
Es importante cerrar el archivo después de realizar las operaciones de lectura. Esto se hace utilizando el método close()
.
archivo.close()
4. Uso de la Declaración with
para el Manejo de Contexto
La declaración with
proporciona un contexto de ejecución para trabajar con archivos. Garantiza que el archivo se cierre correctamente una vez que se sale del bloque with
.
with open('ejemplo.txt', 'r') as archivo:
contenido = archivo.read()
print(contenido)
# El archivo se cierra automáticamente al salir del bloque 'with'
Ejemplo Práctico
A continuación, se muestra un ejemplo que combina los conceptos mencionados:
# Apertura del archivo en modo lectura
with open('ejemplo.txt', 'r') as archivo:
# Lectura de todo el contenido del archivo
contenido = archivo.read()
# Imprimir el contenido
print(contenido)
# Lectura de una línea del archivo
linea = archivo.readline()
print("Primera línea:", linea)
# Lectura de todas las líneas del archivo
lineas = archivo.readlines()
print("Todas las líneas:", lineas)
En este ejemplo, se abre el archivo en modo lectura utilizando la declaración with
. Se lee todo el contenido del archivo, se imprime y luego se lee una línea y todas las líneas restantes.
La lectura de archivos en Python es esencial para manipular datos almacenados en archivos y se realiza de manera eficiente utilizando las funciones y modos adecuados.
Escritura de Archivos en Python
La escritura de archivos en Python es una operación común que permite a los programadores crear, modificar o añadir contenido a archivos. A continuación, se detallan los conceptos clave y las funciones utilizadas para escribir archivos en Python.
1. Apertura de Archivos en Modo de Escritura
La función principal para abrir un archivo en modo escritura es open()
. Al igual que en la lectura, se especifica el nombre del archivo y el modo de apertura. Sin embargo, en este caso, se utiliza un modo que permita la escritura, como 'w'
para escritura normal o 'a'
para añadir contenido al final del archivo.
archivo_escritura = open('nuevo_archivo.txt', 'w')
2. Escritura de Contenido
Existen varias funciones y métodos para escribir contenido en un archivo:
a. write(str)
La función write(str)
escribe la cadena str
en el archivo.
archivo_escritura.write('Este es un nuevo contenido.')
b. writelines(lines)
El método writelines(lines)
escribe una lista de líneas en el archivo. Cada elemento de la lista se considera una línea.
lineas = ['Línea 1\n', 'Línea 2\n', 'Línea 3\n']
archivo_escritura.writelines(lineas)
3. Cierre del Archivo
Después de realizar operaciones de escritura, es importante cerrar el archivo utilizando el método close()
.
archivo_escritura.close()
4. Uso de la Declaración with
para el Manejo de Contexto
Al igual que en la lectura de archivos, se puede utilizar la declaración with
para garantizar que el archivo se cierre correctamente una vez que se completa la escritura.
with open('nuevo_archivo.txt', 'w') as archivo_escritura:
archivo_escritura.write('Este es un nuevo contenido.')
## El archivo se cierra automáticamente al salir del bloque 'with'
Ejemplo Práctico
A continuación, se presenta un ejemplo que demuestra la escritura de contenido en un archivo:
## Apertura del archivo en modo escritura
with open('nuevo_archivo.txt', 'w') as archivo_escritura:
## Escritura de una cadena en el archivo
archivo_escritura.write('Hola, este es un nuevo archivo.\n')
# Escritura de una lista de líneas en el archivo
lineas = ['Línea 1\n', 'Línea 2\n', 'Línea 3\n']
archivo_escritura.writelines(lineas)
En este ejemplo, se abre el archivo en modo escritura utilizando la declaración with
, se escribe una cadena en el archivo y luego se escribe una lista de líneas. El archivo se cerrará automáticamente al salir del bloque with
.
La escritura de archivos en Python es una operación esencial para almacenar y manipular datos. Utilizando las funciones y métodos adecuados, los programadores pueden realizar operaciones de escritura de manera eficiente y precisa.
Seek
La función seek()
en Python se utiliza para cambiar la posición del puntero de lectura/escritura en un archivo. Este puntero indica la ubicación actual en el archivo donde se realizará la próxima operación de lectura o escritura. La función seek()
toma dos argumentos:
offset
: La cantidad de bytes que se desplazará el puntero. Puede ser positivo o negativo.whence
(opcional): Especifica desde dónde se calculará el desplazamiento. Puede tomar tres valores:0
(por defecto): Desde el inicio del archivo.1
: Desde la posición actual del puntero.2
: Desde el final del archivo.
A continuación, se proporciona un ejemplo para ilustrar cómo funciona seek()
:
# Abrir el archivo en modo lectura y escritura
with open('archivo.txt', 'r+') as archivo:
# Leer los primeros 10 bytes del archivo
contenido1 = archivo.read(10)
print("Contenido 1:", contenido1)
# Mover el puntero 5 bytes hacia adelante desde la posición actual
archivo.seek(5, 1)
# Leer los siguientes 5 bytes del archivo desde la nueva posición
contenido2 = archivo.read(5)
print("Contenido 2:", contenido2)
# Mover el puntero al inicio del archivo
archivo.seek(0)
# Sobrescribir los primeros 10 bytes con una nueva cadena
archivo.write('NuevaCadena')
# Mover el puntero al final del archivo
archivo.seek(0, 2)
# Añadir contenido al final del archivo
archivo.write('\n¡Fin del archivo!')
# Mover el puntero 5 bytes hacia atrás desde el final
archivo.seek(-5, 2)
# Leer los últimos 5 bytes del archivo desde la nueva posición
contenido_final = archivo.read()
print("Contenido Final:", contenido_final)
En este ejemplo:
- Se abre el archivo en modo lectura y escritura (
'r+'
). - Se lee y muestra los primeros 10 bytes del archivo.
- Se mueve el puntero 5 bytes hacia adelante desde la posición actual.
- Se lee y muestra los siguientes 5 bytes desde la nueva posición.
- Se mueve el puntero al inicio del archivo y sobrescribe los primeros 10 bytes con una nueva cadena.
- Se mueve el puntero al final del archivo y añade una nueva línea.
- Se mueve el puntero 5 bytes hacia atrás desde el final.
- Se lee y muestra los últimos 5 bytes desde la nueva posición.
El uso de seek()
es útil cuando se necesita realizar operaciones específicas de lectura o escritura en ubicaciones particulares dentro de un archivo.