Métodos Comunes de Python

Explora y copia métodos de uso frecuente en Python para facilitar tus desarrollos.

split_custom()

Divide una cadena en una lista de palabras.

def split_custom(texto, separador=" "):
    resultado = []
    palabra = ""
    for char in texto:
        if char == separador:
            if palabra:
                resultado.append(palabra)
                palabra = ""
        else:
            palabra += char
    if palabra:
        resultado.append(palabra)
    return resultado

# Ejemplo
texto = "Hola cómo estás?"
resultado = split_custom(texto)  # ['Hola', 'cómo', 'estás?']

strip_custom()

Elimina los espacios en blanco al inicio y al final de una cadena.

def strip_custom(texto):
    inicio, fin = 0, len(texto) - 1
    while inicio <= fin and texto[inicio] == " ":
        inicio += 1
    while fin >= inicio and texto[fin] == " ":
        fin -= 1
    return texto[inicio:fin+1]

# Ejemplo
texto = "  Hola mundo  "
resultado = strip_custom(texto)  # "Hola mundo"

upper_custom()

Convierte todos los caracteres de una cadena a mayúsculas.

def upper_custom(texto):
    resultado = ""
    for char in texto:
        if 'a' <= char <= 'z':
            resultado += chr(ord(char) - 32)
        else:
            resultado += char
    return resultado

# Ejemplo
texto = "hola"
resultado = upper_custom(texto)  # "HOLA"

lower_custom()

Convierte todos los caracteres de una cadena a minúsculas.

def lower_custom(texto):
    resultado = ""
    for char in texto:
        if 'A' <= char <= 'Z':
            resultado += chr(ord(char) + 32)
        else:
            resultado += char
    return resultado

# Ejemplo
texto = "HOLA"
resultado = lower_custom(texto)  # "hola"

ordenar_custom()

Ordena una lista de elementos en orden ascendente.

def ordenar_custom(lista):
    for i in range(len(lista)):
        for j in range(i + 1, len(lista)):
            if lista[i] > lista[j]:
                lista[i], lista[j] = lista[j], lista[i]
    return lista

# Ejemplo
numeros = [3, 1, 4, 1, 5]
resultado = ordenar_custom(numeros)  # [1, 1, 3, 4, 5]

Leer archivo CSV

Lee un archivo CSV y guarda su información en listas.

import csv

FILE = 'datos.csv'
paises = []
capitales = []

with open(FILE, 'r', encoding='utf-8') as archivo:
    lector = csv.reader(archivo)
    for fila in lector:
        print(fila)
        paises.append(fila[0])
        capitales.append(fila[1])

print(paises)
print(capitales)

Manejo de archivos CSV

Lee y escribe archivos CSV con manejo de errores completo.

import csv

# Lectura de archivo CSV con manejo de errores
FILE = 'datos.csv'
paises = []
capitales = []

try:
    with open(FILE, 'r', encoding='utf-8') as archivo:
        lector = csv.reader(archivo)
        for fila in lector:
            paises.append(fila[0])
            capitales.append(fila[1])
except FileNotFoundError:
    print("El archivo", FILE, "no existe.")
else:
    print(paises)
    print(capitales)

# Escritura de archivo CSV
paises = ['Argentina', 'Perú', 'Chile', 'Bolivia', 'Paraguay']
capitales = ['Buenos Aires', 'Lima', 'Santiago de Chile', 'La Paz', 'Asunción']

with open(FILE, 'w', newline='', encoding='utf-8') as archivo:
    escritor = csv.writer(archivo)
    for i in range(len(paises)):
        escritor.writerow([paises[i], capitales[i]])

Manejo de archivos TXT

Lee y escribe archivos de texto con manejo de errores usando try/except/finally.

from random import randint

# Lectura de archivo TXT con try/except
try:
    fn = 'datos.txt'
    fd = None
    fd = open(fn, 'r')
    contenido = fd.read()
    print(contenido)
except FileNotFoundError:
    print('El archivo no existe.')
finally:
    if fd:
        fd.close()

# Escritura de archivo TXT con try/except
def escribir_archivo(fname, contenido):
    fd = None
    try:
        fd = open(fname, 'a')
        for elemento in contenido:
            fd.write(str(elemento) + ' ')
        fd.write('\n')
    except Exception as e:
        print(f'Error al escribir archivo: {e}')
    finally:
        if fd:
            fd.close()

FILE = 'filas.txt'
fila = [randint(1,10) for _ in range(5)]
escribir_archivo(FILE, fila)
print(fila)

Manejo de múltiples excepciones

Gestión de diferentes tipos de errores con try/except.

res = None
while res is None:
    try:
        res = int(input('Ingrese numerador: ')) / int(input('Ingrese denominador: '))
    except ZeroDivisionError:
        print('El denominador no puede ser cero')
    except ValueError as val:
        print(str(val))
print(res)