Abrir archivos
Para trabajar con archivos en Python, se utiliza la función integrada open(). Sintaxis básica:
file = open('filename.txt', 'mode')Modos principales de apertura:
'r'— lectura (read). El archivo debe existir'w'— escribir (write). Crea un nuevo archivo o sobrescribe uno existente'a'— añadir (append). Añade datos al final del archivo'r+'— lectura y escritura'b'— modo binario (por ejemplo,'rb'o'wb')
Lectura de archivos
Lectura de todo el contenido:
with open('example.txt', 'r', encoding='utf-8') as file:
content = file.read()
print(content)Lectura línea por línea:
with open('example.txt', 'r', encoding='utf-8') as file:
for line in file:
print(line.strip()) # strip() elimina los caracteres de salto de líneaLeer todas las líneas de la lista:
with open('example.txt', 'r', encoding='utf-8') as file:
lines = file.readlines()
print(lines)Grabación en archivos
Grabación de texto (sobrescribir archivo):
with open('output.txt', 'w', encoding='utf-8') as file:
file.write('Hello world!\n')
file.write('This is the second line.')Añadir texto al final del archivo:
with open('output.txt', 'a', encoding='utf-8') as file:
file.write('\nAdditional line')Registro de la lista de líneas:
lines = ['First line\n', 'Second line\n', 'Third line\n']
with open('output.txt', 'w', encoding='utf-8') as file:
file.writelines(lines)Diseño con
Usar with es una buena práctica cuando se trabaja con archivos. Cierra automáticamente el archivo después de ejecutar el bloque de código, incluso si se produce un error.
Sin with (no recomendado):
file = open('example.txt', 'r')
content = file.read()
file.close() # ¡No olvides cerrar el archivo!Con (recomendado):
with open('example.txt', 'r') as file:
content = file.read()
# El archivo se cierra automáticamente después de salir del bloqueTrabajar con rutas de archivos
Para trabajar cómodamente con las rutas, utiliza el módulo pathlib:
from pathlib import Path
# Creación de una ruta
file_path = Path('folder') / 'subfolder' / 'file.txt'
# Verificación de la existencia
if file_path.exists():
print('File exists')
# Lectura de archivo
content = file_path.read_text(encoding='utf-8')
# Grabación en archivo
file_path.write_text('New content', encoding='utf-8')
Tratamiento de errores
Al trabajar con archivos, es importante procesar posibles errores:
try:
with open('nonexistent.txt', 'r', encoding='utf-8') as file:
content = file.read()
except FileNotFoundError:
print('File not found')
except PermissionError:
print('No access rights to the file')
except Exception as e:
print(f'An error occurred: {e}')Trabajar con archivos CSV
Python tiene un módulo integrado csv para trabajar con archivos CSV:
import csv
# Lectura de CSV
with open('data.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row)
# Registro CSV
data = [
['Name', 'Age', 'City'],
['Alexey', '25', 'Moscow'],
['Maria', '30', 'St. Petersburg']
]
with open('output.csv', 'w', encoding='utf-8', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)Trabajar con archivos JSON
Para trabajar con JSON, se utiliza el módulo json:
import json
# Lectura de JSON
with open('data.json', 'r', encoding='utf-8') as file:
data = json.load(file)
print(data)
# Registro JSON
data = {
'name': 'Ivan',
'age': 28,
'skills': ['Python', 'JavaScript']
}
with open('output.json', 'w', encoding='utf-8') as file:
json.dump(data, file, ensure_ascii=False, indent=4)Ejemplos prácticos
Recuento del número de líneas en el archivo:
with open('example.txt', 'r', encoding='utf-8') as file:
line_count = sum(1 for line in file)
print(f'Number of lines: {line_count}')Buscar palabra en archivo:
search_word = 'Python'
with open('example.txt', 'r', encoding='utf-8') as file:
for line_number, line in enumerate(file, 1):
if search_word in line:
print(f'Found in line {line_number}: {line.strip()}')Copiando archivo:
with open('source.txt', 'r', encoding='utf-8') as source:
with open('destination.txt', 'w', encoding='utf-8') as destination:
destination.write(source.read())Consejos útiles
Indica siempre la codificación. Utilice encoding='utf-8' para trabajar correctamente con el texto ruso.
Utiliza with para cerrar archivos automáticamente. Esto evita fugas de recursos y pérdida de datos.
Gestiona las excepciones. Es posible que los archivos no existan, estén bloqueados o que no tengas permisos de acceso.
Compruebe la existencia de los archivos. Antes de leer, asegúrese de que el archivo exista usando Path.exists() o manejo de excepciones.
Ten cuidado con los archivos grandes. El método read() carga todo el archivo en la memoria. Para archivos grandes, es mejor leer línea por línea.
Conclusión
Trabajar con archivos en Python es simple e intuitivo. Principios básicos: usa la construcción with, no olvides el manejo de errores y elige el modo de apertura de archivo correcto. Con estos conocimientos, ¡ya puedes trabajar eficazmente con archivos en tus proyectos!
Kodik es una comunidad amigable de desarrolladores donde todos pueden aprender a programar, compartir experiencias y recibir apoyo de personas de ideas afines. Hemos creado un espacio donde los principiantes se sienten cómodos haciendo cualquier pregunta, y los programadores experimentados están felices de compartir sus conocimientos y ayudar a crecer.
Únete a Kodik — ¡aquí es más fácil escribir código y el aprendizaje se desarrolla en un ambiente de ayuda mutua e inspiración!
