Ir al contenido principal

Leer y editar archivos PDF y documentos de Word desde Python

Este tutorial te permitirá leer documentos PDF y combinar varios archivos PDF en uno solo. También verás cómo leer y escribir documentos de Word desde Python.
Actualizado 17 sept 2026  · 8 min leer

Explorar con IA

ChatGPTClaudePerplexity

Documentos PDF

PDF es el formato de documento portátil que puede incluir texto, imágenes, gráficos, etc., a diferencia de los archivos de texto plano. Es un archivo con la extensión ".pdf" e inventado por Adobe. Este tipo de archivo es independiente de la plataforma: no depende de software, hardware ni del sistema operativo.

Pasos para instalar el paquete:

  1. Necesitas instalar un paquete llamado "pypdf2" que permite trabajar con archivos con extensión ".pdf". install package 1

  2. Verás el paquete 'pypdf2' instalado como se muestra a continuación. install package 2

Leer documentos PDF y extraer datos

Solo extraerás el texto del archivo PDF, ya que PyPDF2 tiene limitaciones a la hora de obtener contenido multimedia enriquecido. Los logotipos, imágenes, etc. no se pueden extraer — descarga el siguiente archivo PDF para seguir este tutorial.
Descargar archivo PDF

import pdf

La sentencia 'import' del código anterior carga el módulo PyPDF2. Debes usar 'open('pdfFileName', 'openingMode')' donde 'pdfFilename' es 'test.pdf' y 'openingMode' es 'rb', es decir, lectura en formato binario.

open pdf

PyPDF2 proporciona el método 'PdfFileReader', que recibe el objeto recién creado 'pdfFileObject'. Ahora puedes acceder al atributo 'numPages' de 'pdfFileObject', que devuelve el número total de páginas.

total number of pages La salida anterior es 1, ya que el archivo PDF tiene una sola página.

first page Puedes usar el método 'getPage(0)' sobre 'pdfReaderObject' para obtener la primera página. El resultado se guarda en 'firstPageObject', desde donde puedes imprimir todo el texto de esa página usando 'extractText()'.

all text El código anterior devuelve todo el texto del archivo PDF. Sin embargo, la imagen no aparece en la terminal, algo que no es posible obtener con PyPDF2.

Combinar varios archivos PDF en un único PDF

Vas a combinar dos archivos PDF distintos en un único documento. El PDF antiguo es el que usaste antes, y el PDF nuevo puedes descargarlo del siguiente enlace:
Nuevo archivo PDF.

new pdf

Importarás el módulo PdfFileMerger del paquete PyPDF2, que sirve para combinar archivos PDF. Se especifica la 'path' con la ruta a la carpeta donde están los archivos. Además, los PDFs a combinar se incluyen en la lista 'pdf_files'.

merger object Se crea el objeto 'merger' con 'PdfFileMerger'. Se recorre la lista y se van añadiendo los archivos mediante el método 'append', pasando la ruta y el nombre de archivo. Por último, se obtiene el resultado final con 'merger.write()', que guarda el contenido combinado con un nuevo nombre de PDF.

merged pdf La imagen anterior muestra 'merged.pdf', que contiene el contenido combinado de 'test.pdf' y 'test-1.pdf'.

Documentos de Word

Los documentos de Word llevan la extensión ".docx" al final del nombre de archivo. No contienen solo texto como los archivos de texto plano: son documentos de texto enriquecido. Un documento de texto enriquecido incluye diferentes estructuras y formatos: tamaño, alineación, color, imágenes, tipo de letra, etc.

Necesitas una aplicación para trabajar con documentos de Word. La aplicación más popular en Windows y macOS es Microsoft Word, pero requiere una suscripción de pago. Sin embargo, existe una alternativa gratuita como "LibreOffice", que en Linux suele venir preinstalada. También puedes descargar estas aplicaciones para Windows y macOS. En este tutorial usaremos Microsoft Word en Windows.

Pasos para instalar el paquete

  1. Necesitas instalar un paquete llamado "python-docx" para trabajar con documentos de Word con extensión ".docx". python-docx package

  2. Verás el paquete 'python-docx' instalado como se muestra a continuación. installed package

Puedes programar en el intérprete interactivo de Python, pero es preferible usar un editor de texto. En este tutorial usaremos Sublime Text para la parte de código.

Escribir un documento de Word

document module imported

Arriba puedes ver que se importa 'document' del paquete 'docx' en la primera línea. La segunda línea crea un documento de Word nuevo mediante el objeto Document. El archivo se guarda como 'first.docx' usando 'document.save()'.

Añadir un título

add heading

El código anterior usa 'Document()' para abrir un archivo nuevo y 'document.save('addHeader.docx')' para crear el archivo .docx editado. Puedes añadir un título con el método 'add_heading('text', level=número)', que recibe el texto del título y el nivel de encabezado, de 0 a 4.

heading levels

El código anterior genera un nuevo archivo 'addedHeader.docx'. El nivel 0 crea un titular con una línea horizontal debajo del texto, mientras que el nivel 1 es el encabezado principal. Los demás niveles son subtítulos, con tamaños de fuente decrecientes.

Añadir un párrafo

add a paragraph

El código anterior usa 'Document()' para abrir un documento nuevo y 'document.save('addParagraph.docx')' para crear el archivo .docx editado. Puedes añadir un párrafo con el método 'add_paragraph('text', style='estilo_opcional')', que recibe el texto y, opcionalmente, el 'style'. Puedes usar, por ejemplo, 'List Number' y 'List Bullet'.

newly created file

El resultado es un nuevo archivo 'addedParagraph.docx' que contiene un párrafo sencillo en la primera línea. Después hay un título y, debajo, una lista ordenada con los ítems 1 y 2. Más abajo hay otro título con una lista desordenada con dos elementos con viñetas.

Añadir una imagen

add a picture

El código anterior usa 'Document()' para crear un archivo nuevo y 'document.save('addPicture.docx')' para guardar el archivo .docx editado. Puedes añadir una imagen con 'add_picture()', cuyo primer parámetro es la ruta de la imagen, por ejemplo 'cat-1.jpeg'. Los parámetros de ancho y alto son opcionales; por defecto son 72 dp, pero aquí usamos 'Inches' para nuestro caso.

added picture

El resultado es un nuevo archivo 'addedPicture.docx' que contiene una imagen de un gato con 1,25 pulgadas de ancho y alto.

Leer un documento de Word

Ahora vas a leer un documento de Word de ejemplo desde Python. Puedes descargarlo aquí:
Descargar ejemplo.

reading word document

La primera línea del código importa 'Document' del módulo 'docx', que se usa para cargar el archivo y crear un objeto. 'obtainText' es una función que recibe el archivo 'fullText.docx'. Se itera por cada párrafo a través de 'document.paragraphs' y se inserta en una lista vacía con el método 'append'. Finalmente, la función devuelve una lista de párrafos separados por saltos de línea.

plain text

La salida anterior devuelve texto plano, sin estilos, colores, etc.; no es un documento de texto enriquecido.

Enhorabuena

Enhorabuena, has terminado este tutorial.

Si quieres aprender más sobre la importación de datos en Python, prueba el curso Introduction to Importing Data in Python de DataCamp.

Échale un vistazo también a nuestro tutorial sobre estructuras de datos en Python.

Estos recursos también pueden ayudarte a ampliar conocimientos sobre temas específicos.

  1. Documentación de python-docx
  2. Documentación de PyPDF2

Referencias:
Automate Boring Stuff With Python: Working with Word Documents

Temas
Python

Aprende más sobre Python

Curso

Introducción a la importación de datos en Python

3 h
340.9K
Aprende a importar datos a Python desde diversas fuentes, como Excel, SQL, SAS y directamente desde la web.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial de Excel en Python: La guía definitiva

Aprende a leer e importar archivos Excel en Python, a escribir datos en estas hojas de cálculo y a encontrar los mejores paquetes para hacerlo.
Natassha Selvaraj's photo

Natassha Selvaraj

15 min

Tutorial

Tutorial de módulos de Python: Importarlos, escribirlos y utilizarlos

Aprende a crear e importar módulos de Python. ¡Descubre las mejores prácticas, ejemplos y consejos para escribir código Python reutilizable, organizado y eficiente!

Nishant Kumar

8 min

Tutorial

Tutorial sobre cómo ejecutar scripts en Python

Aprenda cómo puede ejecutar un script Python desde la línea de comandos, y también cómo puede proporcionar argumentos de línea de comandos a su script.
Aditya Sharma's photo

Aditya Sharma

10 min

Tutorial

Tutorial sobre cómo concatenar cadenas en Python

Aprende varios métodos para concatenar cadenas en Python, con ejemplos que ilustran cada técnica.
DataCamp Team's photo

DataCamp Team

5 min

Tutorial

Tutorial de unión de DataFrames en pandas

En este tutorial, usted aprenderá varias maneras en las que múltiples DataFrames pueden ser fusionados en python usando la librería Pandas.
DataCamp Team's photo

DataCamp Team

13 min

Tutorial

Tres métodos para convertir un script de Python en un archivo EXE

Aprende qué es un archivo ejecutable y cómo convertir un script de Python en un archivo .exe utilizando PyInstaller, Nuitka y auto-py-to-exe.
Kurtis Pykes 's photo

Kurtis Pykes

7 min

Ver MásVer Más