GeneralProgramaciónTecnología

¿Cómo desarrollar un código simple en Python para convertir varios archivos .pdf en varios archivos .txt (con el mismo nombre)?

Código Python: Cada archivo .pdf va a transformarse en un archivo .txt.

PDF a TXT

Para esto se pueden utilizar los módulos PyPDF2 y os de Python para convertir varios archivos .pdf en archivos .txt. Aquí te proporciono un ejemplo de código:

import os
import PyPDF2

# Establecer el directorio que contiene los archivos PDF
pdf_dir = "ruta/al/directorio/con/pdf"

# Iterar a través de todos los archivos PDF en el directorio
for filename in os.listdir(pdf_dir):
    if filename.endswith('.pdf'):
        # Abrir el archivo PDF
        pdf_file = open(os.path.join(pdf_dir, filename), 'rb')
        
        # Crear un nuevo archivo de texto con el mismo nombre
        txt_file = open(os.path.join(pdf_dir, os.path.splitext(filename)[0] + '.txt'), 'w')
        
        # Crear un objeto lector de PDF
        pdf_reader = PyPDF2.PdfFileReader(pdf_file)
        
        # Iterar a través de todas las páginas en el archivo PDF
        for page_num in range(pdf_reader.numPages):
            # Extraer el texto de cada página
            page = pdf_reader.getPage(page_num)
            text = page.extractText()
            
            # Escribir el texto en el archivo de texto
            txt_file.write(text)
        
        # Cerrar los archivos
        pdf_file.close()
        txt_file.close()

Asegúrate de tener PyPDF2 instalado. Puedes instalarlo a través de pip:

pip install PyPDF2

Este código iterará a través de todos los archivos PDF en el directorio especificado, creará un nuevo archivo de texto con el mismo nombre que el archivo PDF, extraerá el texto de cada página del archivo PDF y lo escribirá en el archivo de texto. Los archivos de texto se guardarán en el mismo directorio que los archivos PDF.

Si quieres conocer más de la libreria PyPDF2 puedes visitar este link.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *