Tecnología

Cómo Validar RUT Chileno en Python (Código y Ejemplos)

Función completa para validar RUT chileno en Python usando el algoritmo Módulo 11. Incluye manejo de la letra K, formato con puntos y guión, y casos de prueba.

2026-06-21 4 min lectura Rutificador Chile

Python es uno de los lenguajes más usados para procesar datos en Chile. Esta función valida y formatea RUTs usando el algoritmo Módulo 11.

def calcular_dv(cuerpo: str) -> str:
    serie = [2, 3, 4, 5, 6, 7]
    suma = sum(int(d) * serie[i % 6] for i, d in enumerate(reversed(str(cuerpo))))
    resto = 11 - (suma % 11)
    if resto == 11: return '0'
    if resto == 10: return 'K'
    return str(resto)

def validar_rut(rut: str) -> bool:
    clean = ''.join(c for c in rut.upper() if c.isdigit() or c == 'K')
    if len(clean) < 2:
        return False
    cuerpo, dv = clean[:-1], clean[-1]
    return calcular_dv(cuerpo) == dv

def formatear_rut(rut: str) -> str:
    clean = ''.join(c for c in rut.upper() if c.isdigit() or c == 'K')
    cuerpo, dv = clean[:-1], clean[-1]
    # Agregar puntos
    cuerpo_con_puntos = ''
    for i, c in enumerate(reversed(cuerpo)):
        if i > 0 and i % 3 == 0:
            cuerpo_con_puntos = '.' + cuerpo_con_puntos
        cuerpo_con_puntos = c + cuerpo_con_puntos
    return f"{cuerpo_con_puntos}-{dv}"

# Pruebas
print(validar_rut('12.345.678-5'))  # True
print(validar_rut('12345678-9'))    # False
print(formatear_rut('123456785'))   # 12.345.678-5

Preguntas frecuentes

¿Funciona con pandas para validar columnas de RUTs?

Sí: df['rut_valido'] = df['rut'].apply(validar_rut) aplica la función a toda una columna.

Busca el RUT de cualquier persona en Chile

El Rutificador de nombreyrut.com es gratuito y tiene millones de registros públicos.