Cadenas de texto y entrada/salida de archivos en Python
Al finalizar este tema
Podrás manipular cadenas de texto de diversas formas en Python, así como leer y escribir archivos de texto.
Las cadenas son secuencias de caracteres
En Python, una cadena (str) es una secuencia de caracteres dispuestos en orden. Al igual que las listas, permite realizar indexación y segmentación (slicing).
text = "BioPlayground"
print(text[0]) # 'B' — primer carácterprint(text[-1]) # 'd' — último carácterprint(text[3:7]) # 'Play' — desde el índice 3 hasta el 6print(len(text)) # 13Las cadenas de texto son inmutables. text[0] = 'b' producirá un error. Para modificarlas, debe crear una nueva cadena.
Métodos de cadena de uso frecuente
msg = " Hello, World! "
msg.strip() # 'Hello, World!' — elimina espacios a ambos ladosmsg.lower() # ' hello, world! 'msg.upper() # ' HELLO, WORLD! 'msg.replace("World", "Python") # ' Hello, Python! '
# separación y unióncsv = "manzana,planta de banano,uva"fruits = csv.split(",") # ['manzana', 'planta de banano', 'uva']"-".join(fruits) # 'manzana-planta de banano-uva'
# verificar inclusión"planta de banano" in csv # Truecsv.startswith("manzana") # Truecsv.count(",") # 2split() y join() se utilizan a diario para el análisis de CSV, el análisis de registros y el preprocesamiento de datos.
f-string — inserción de variables en cadenas de texto
Introducido en Python 3.6, el f-string es la forma más limpia de insertar variables directamente dentro de una cadena de texto.
name = "Kim Hun"score = 95.5
# f-string (recomendado)print(f"Puntuación de {name}: {score} puntos")# Puntuación de Kim Hun: 95.5 puntos
# También se pueden usar expresionesprint(f"¿Aprobado?: {'Aprobado' if score >= 60 else 'Reprobado'}")# ¿Aprobado?: Aprobado
# Formato de decimalespi = 3.141592print(f"Pi: {pi:.2f}") # Pi: 3.14Los métodos anteriores ("% s" % name, "{}".format(name)) también funcionan, pero las f-strings ofrecen una mejor legibilidad y rendimiento.
Lectura de archivos
# Leer todo el archivowith open("data.txt", "r", encoding="utf-8") as f: content = f.read() print(content)
# Leer línea por línea (ventajoso para archivos grandes)with open("data.txt", "r", encoding="utf-8") as f: for line in f: print(line.strip()) # Eliminar salto de líneawith abre el archivo y lo cierra automáticamente al finalizar el bloque. No es necesario llamar a f.close() directamente. Si no se utiliza with, el archivo no se cerrará, lo que puede provocar una fuga de memoria; por lo tanto, siempre debe usarse with.
Escritura de archivos
# Crear nuevo archivo (sobrescribir contenido existente)with open("output.txt", "w", encoding="utf-8") as f: f.write("Primera línea\n") f.write("Segunda línea\n")
# Agregar al archivo existente (append)with open("output.txt", "a", encoding="utf-8") as f: f.write("Línea añadida\n")| Modo | Significado | Si el archivo no existe |
|---|---|---|
"r" | Solo lectura | Error |
"w" | Escritura (sobrescribir) | Crear nuevo |
"a" | Anexar (continuar escritura) | Crear nuevo |
"x" | Crear (error si ya existe) | Crear nuevo |
Patrón práctico — Análisis directo de CSV
# Analizar directamente el archivo CSV (sin librerías)with open("scores.csv", "r", encoding="utf-8") as f: header = f.readline().strip().split(",") print(header) # ['Nombre', 'Coreano', 'Inglés', 'Matemáticas']
for line in f: fields = line.strip().split(",") name = fields[0] total = sum(int(x) for x in fields[1:]) print(f"{name}: Total {total}")}]}<reset></think>{Por supuesto, en la práctica se utilizan los módulos csv o pandas, pero si comprendes los principios de la entrada y salida de archivos, podrás manejar cualquier tipo de datos.
Resumen clave
Las cadenas de texto y los archivos son los canales de entrada y salida de la programación. Todo el proceso de leer datos externos, guardar los resultados del procesamiento y generar salidas legibles por humanos comienza aquí. Al dominar split, join, f-string y with open, será posible realizar la mayoría de las tareas de procesamiento de texto.