TXT a Word: Automatiza la conversión de archivos con código y asistentes IA
Scripts, librerías y prompts que eliminan la tarea repetitiva de transformar texto plano en documentos profesionales
Por Jose Luis Rueda · 12 min lectura · 2026-08-06
Tienes cien archivos de notas en TXT. Debes entregar reportes en Word para mañana. Copiar, pegar y formatear uno por uno no es opción. El proceso manual quema horas y desvía al profesional de su verdadero trabajo: analizar, decidir, crear.
Este artículo te entrega un método técnico, probado y directo para convertir TXT a Word. Primero revisamos las limitaciones de las herramientas de oficina. Luego construimos un script en Python con la librería python-docx que puede manejar desde un solo archivo hasta directorios completos, añadir estilos, márgenes y hasta tablas. En el camino verás cómo HolaGPT acelera este flujo: desde generar el código inicial hasta depurar errores de encoding o afinar la salida profesional. Al final tendrás un activo reutilizable: automatización pura, sin dependencia de menús ni interfaces.
Por qué la conversión TXT a Word sigue siendo un cuello de botella
El formato TXT es el mínimo común denominador de la información digital. Sin estilos, sin tipografías, sin imágenes. Perfecto para logs, configuraciones o primeras versiones de contenido. Word, en cambio, es el estándar corporativo para entregables, reportes y contratos. Cuando un profesional hereda sistemas que escupen TXT, o trabaja con datos que debe presentar en Word, la brecha entre ambos mundos se vuelve una tarea manual, repetitiva y costosa.
Cada minuto dedicado a abrir un TXT, copiar su contenido, pegarlo en un DOCX, ajustar fuentes y márgenes es un minuto perdido. Multiplica eso por 20, 100 o 1000 archivos y el problema escala fuera de control. Automatizar esa conversión no es un lujo: es productividad básica. Y lo mejor es que se puede resolver con scripts cortos y asistentes de IA que generan, explican y adaptan el código por ti.
En este artículo veremos:
- Cómo convertir un TXT a DOCX en Python, línea por línea.
- Manejo de codificaciones (UTF-8, Latin-1, etc.) que suelen romper el flujo.
- Conversión masiva por lotes con un simple bucle.
- Aplicación de estilos de Word (títulos, párrafos, listas) desde el script.
- Uso de HolaGPT para generar, depurar y mejorar ese mismo código sin perder tiempo en documentación.
Métodos manuales: cuándo no son suficientes
Un usuario ocasional puede abrir el TXT en Bloc de notas, copiar todo y pegarlo en Word. Si el texto es limpio, la operación tarda 15 segundos. El problema empieza cuando hay que conservar codificaciones especiales, cuando el archivo trae caracteres de control, o cuando el número de documentos es significativo.
Word permite abrir archivos TXT directamente: 'Archivo' > 'Abrir' y seleccionas 'Todos los archivos'. Al hacerlo, aparece un asistente de conversión que pregunta por la codificación. Funciona, pero no escala. Tampoco ofrece control sobre el formato final. El resultado es un documento sin estilos, con fuentes predeterminadas que pocas veces coinciden con la imagen corporativa. Cada ajuste posterior suma tiempo y riesgo de error.
Copiar y pegar masivamente mediante grabación de macros de Word es otro intento común. Pero las macros VBA son frágiles, difíciles de mantener y generan documentos con formatos heredados del portapapeles. La opción profesional y robusta es un script externo que construya el DOCX a la medida, sin abrir Word siquiera.
Automatización con Python: la ruta técnica que no falla
Python, con la librería python-docx, permite crear y manipular documentos de Word sin instalar Microsoft Office. El flujo básico es: leer el TXT, interpretar su contenido y volcarlo en un documento nuevo con los estilos deseados. El código es corto y autodocumentado.
Vamos paso por paso.
1. Instalación del entorno
Necesitas Python 3.7 o superior. Crea un entorno virtual e instala la librería:
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # macOS/Linux
pip install python-docxSi manejas archivos grandes o con codificaciones extrañas, sumar chardet ayuda a detectar la codificación real del TXT. Instálala igual: pip install chardet.
2. Script básico: de TXT a DOCX con un solo estilo
El script más simple lee el archivo y escribe cada línea como un párrafo:
from docx import Document
def txt_a_docx(archivo_txt, archivo_docx):
doc = Document()
with open(archivo_txt, 'r', encoding='utf-8') as f:
for linea in f:
linea = linea.strip()
if linea:
doc.add_paragraph(linea)
else:
doc.add_paragraph('') # línea vacía como separación
doc.save(archivo_docx)
txt_a_docx('entrada.txt', 'salida.docx')Este código es funcional pero básico. No distingue títulos, no controla márgenes ni tipografía. Sirve para entender la estructura: Document() crea un lienzo en blanco, add_paragraph() inserta contenido, save() persiste el archivo.
Muchos TXT vienen con codificación distinta a UTF-8. Forzar 'utf-8' puede romper la lectura. Para una solución robusta, detectamos la codificación con chardet:
import chardet
def detectar_codificacion(archivo):
with open(archivo, 'rb') as f:
raw = f.read()
resultado = chardet.detect(raw)
return resultado['encoding']
# Usar dentro de la función anterior:
codificacion = detectar_codificacion(archivo_txt)
with open(archivo_txt, 'r', encoding=codificacion) as f:
...Con esto evitas el 90% de los errores de caracteres extraños.
3. Aplicar estilos de Word desde Python
Un documento profesional necesita jerarquía visual. La librería permite definir estilos de párrafo y de carácter, o usar los predefinidos 'Heading 1', 'Heading 2', 'Normal', etc. Supongamos que el TXT marca los títulos principales con '#' al inicio, como en Markdown. El script puede interpretar eso:
from docx import Document
from docx.shared import Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
import re
def txt_markdown_a_docx(archivo_txt, archivo_docx):
doc = Document()
# Configurar márgenes
for seccion in doc.sections:
seccion.top_margin = Cm(2.5)
seccion.bottom_margin = Cm(2.5)
seccion.left_margin = Cm(3)
seccion.right_margin = Cm(3)
with open(archivo_txt, 'r', encoding='utf-8') as f:
for linea in f:
linea = linea.rstrip()
if not linea:
continue
if linea.startswith('# '):
doc.add_heading(linea[2:], level=1)
elif linea.startswith('## '):
doc.add_heading(linea[3:], level=2)
elif linea.startswith('- '):
doc.add_paragraph(linea[2:], style='List Bullet')
else:
p = doc.add_paragraph(linea)
# Ajustar fuente base si es necesario
for run in p.runs:
run.font.size = Pt(11)
doc.save(archivo_docx)El código revisa marcadores simples y asigna estilos. Puedes extenderlo para negritas, código, etc. Lo clave es que el script actúa como un compilador que transforma texto plano en un DOCX estructurado.
Conversión masiva: procesar cientos de archivos de una sola vez
Cuando el volumen crece, usamos un bucle sobre el directorio de entrada. Recorremos todos los .txt, aplicamos la función y guardamos cada DOCX en una carpeta de salida.
import os
from pathlib import Path
def convertir_lote(carpeta_origen, carpeta_destino):
Path(carpeta_destino).mkdir(parents=True, exist_ok=True)
for archivo in os.listdir(carpeta_origen):
if archivo.endswith('.txt'):
ruta_txt = os.path.join(carpeta_origen, archivo)
nombre_docx = archivo.replace('.txt', '.docx')
ruta_docx = os.path.join(carpeta_destino, nombre_docx)
txt_markdown_a_docx(ruta_txt, ruta_docx)
print(f'Convertido: {archivo}')
convertir_lote('txts_entrada', 'docs_salida')De minutos u horas manuales pasas a segundos de ejecución. El script puede ejecutarse bajo demanda o programarse como tarea cron / Programador de tareas. Así, cada vez que un sistema suelta nuevos TXT en una carpeta, el contenido se transforma automáticamente.
Manejo avanzado: tablas, encabezados y pies de página
Los archivos TXT pueden contener datos tabulares con formato delimitado (coma, punto y coma, tabulaciones). Python puede leer esos datos y generar tablas de Word nativas con python-docx.
def agregar_tabla_desde_csv(doc, ruta_csv):
with open(ruta_csv, 'r', encoding='utf-8') as f:
reader = csv.reader(f, delimiter=';')
first_row = next(reader)
tabla = doc.add_table(rows=1, cols=len(first_row))
tabla.style = 'Light Shading Accent 1'
# Cabecera
hdr_cells = tabla.rows[0].cells
for i, valor in enumerate(first_row):
hdr_cells[i].text = valor
for row in reader:
row_cells = tabla.add_row().cells
for i, valor in enumerate(row):
row_cells[i].text = valor
doc.add_paragraph() # Espacio posteriorEncabezados y pies de página corporativos también son configurables:
for seccion in doc.sections:
header = seccion.header
header.paragraphs[0].text = 'Reporte automático - Confidencial'
footer = seccion.footer
footer.paragraphs[0].text = 'Página ' + str(...) # campos de página requieren XMLEl manejo de campos dinámicos (número de página, fecha) se logra insertando XML dentro del documento, un escalón más avanzado que la librería soporta mediante doc.element. Aquí, el desarrollador puede pedir ayuda a HolaGPT para que genere el fragmento de XML correspondiente sin necesidad de bucear en la especificación OOXML.
Cómo HolaGPT acelera todo el flujo de conversión
Escribir estos scripts desde cero requiere conocer la API de python-docx, manejar excepciones, decidir la lógica de parseo. Un profesional puede pedirle a HolaGPT que genere el código base en segundos. Con un prompt como: "Necesito un script Python que lea archivos .txt de una carpeta y los convierta a .docx aplicando estilo 'Normal' de Word, fuente Arial 11, márgenes 2.5 cm. El TXT usa '#' para título principal."
HolaGPT entrega el código completo, explicado y listo para probar. Luego, si surge un error de encoding, basta con pegar el mensaje de error y pedir: "El script falla con UnicodeDecodeError en algunos archivos, ¿puedes agregar detección automática de codificación?". La IA modifica la función, añade chardet y devuelve una versión robusta.
Además, HolaGPT puede ayudarte a:
- Generar pruebas unitarias para el script.
- Convertir el código en una interfaz de línea de comandos con argparse.
- Agregar manejo de archivos anidados en subcarpetas.
- Explicar línea por línea el funcionamiento, útil para documentar o capacitar al equipo.
Esta sinergia evita que el profesional pierda tiempo buscando en Stack Overflow o leyendo documentación dispersa. Plantea el problema en lenguaje natural, recibe solución ejecutable y la personaliza al instante.
Mejores prácticas y errores comunes al convertir TXT a Word
Encoding fantasma. Muchos TXT se generan en sistemas Windows con codificación Latin-1 o Windows-1252. Asumir UTF-8 causa caracteres rotos. La regla de oro: detectar siempre. La función con chardet soluciona esto; si no quieres depender de una librería externa, abre el archivo en binario y prueba con las codificaciones más frecuentes en orden: 'utf-8', 'latin-1', 'cp1252'. Pero chardet es más preciso.
Rendimiento. Para archivos extremadamente grandes (>100 MB) es mejor leer línea por línea (como en el ejemplo) en lugar de cargar todo en memoria. Si necesitas parsear estructuras complejas, opta por un enfoque de streaming con generadores. Python lo maneja bien.
Estilos heredados de la plantilla por defecto. Document() usa la plantilla por defecto de Word (Normal.dotm). Si tu empresa tiene una plantilla corporativa, cárgala con Document('plantilla.docx'). Así los estilos, colores y fuentes coinciden automáticamente.
Saltos de página y secciones. Los archivos TXT a veces separan capítulos con líneas en blanco o marcas como '---'. En lugar de párrafo vacío, usa doc.add_page_break() para un salto de página real. Si necesitas cambiar orientación de hoja en medio del documento, agrega una nueva sección: doc.add_section() y configura sus propiedades.
No validar la salida. Después de generar el DOCX, ábrelo y revisa que los estilos se hayan aplicado, que no haya párrafos vacíos molestos. Automatiza una verificación básica contando párrafos o comprobando que el tamaño del archivo no sea cero. Una prueba de humo que evita sorpresas.
Integración en flujos de trabajo reales
Este script se puede embeber en pipelines mayores. Por ejemplo:
- Exportación de base de datos: Un procedimiento almacenado vuelca datos a TXT; Python los convierte a reportes DOCX con tablas y gráficos (usando python-docx y matplotlib).
- Procesamiento de formularios web: Las respuestas de un formulario se guardan en TXT; cada noche un script consolida y produce documentos Word listos para revisión.
- Migración de documentación: Sistemas heredados con manuales en TXT se transforman en una base de conocimiento en formato Word, indexable y con marca corporativa.
En todos los casos, la lógica de conversión queda encapsulada en una función Python fácil de mantener. Y si la lógica cambia, HolaGPT puede reescribir la función adaptada a las nuevas reglas de negocio sin arrancar de cero.
Conclusión y próximos pasos
Convertir TXT a Word dejó de ser una tarea manual. Con Python y la librería python-docx tienes un puente sólido entre el texto plano y los documentos profesionales. Cubrimos desde la lectura con detección de encoding hasta la aplicación de estilos corporativos, tablas dinámicas y procesamiento por lotes.
El verdadero salto productivo ocurre cuando delegas la escritura y depuración del código en HolaGPT. En lugar de memorizar métodos y parámetros, formulas el problema en lenguaje natural y obtienes una solución ejecutable. Luego la ajustas, la pruebas y la pones en producción. El resultado no es solo ahorro de tiempo: es un código de mayor calidad, validado y explicado, que cualquier miembro del equipo puede entender y modificar.
Lleva el concepto más lejos: ¿qué otros formatos necesitas transformar? TXT a PDF, CSV a Excel, Markdown a presentaciones. La misma filosofía aplica. Construye tus propias utilidades, apóyate en la IA para el boilerplate y enfócate en el valor diferencial. La conversión de archivos no es un fin, es el medio para que la información fluya sin fricción dentro de tu organización.