es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Lea un documento de Word por páginas utilizando el paquete docx2python.

¿Cómo puedo leer un documento de Word por páginas (deseo crear un diccionario, donde las claves sean el número de páginas y sus respectivos valores sean las cadenas correspondientes a las páginas: {“1”: “contenido 1”, “2”: “contenido 2”, …}) con docx2python? Si no es posible con este paquete, ¿con qué paquete lo puedo hacer?

Este es mi código hasta ahora, devuelve un documento de Word completo como una cadena. Gracias.

!pip install docx2python

from docx2python import docx2python

def read_word(file_path):
    """
    Función que lee un archivo de Word y devuelve una cadena
    """

    # Extraer contenido de docx, ignorar imágenes
    doc = docx2python(file_path, extract_image=False)

    # Obtener todo el texto en una sola cadena
    output = doc.text

    return output
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para leer un documento de Word por páginas utilizando el paquete docx2python, puedes recorrer cada página y agregar el contenido a un diccionario donde la clave sea el número de página y el valor sea el contenido. Aquí tienes un ejemplo de código:

    from docx2python import docx2python
    
    def leer_word(ruta_archivo):
        """
        Función que lee un archivo de Word y devuelve un diccionario donde las claves son los 
        números de página y los valores son el contenido de cada página.
        """
        # Extraer contenido del docx, ignorar imágenes
        doc = docx2python(ruta_archivo, extract_image=False)
    
        # Crear un diccionario vacío para almacenar el resultado
        resultado = {}
    
        # Recorrer cada página del documento
        for i, pagina in enumerate(doc.body):
            # Obtener el contenido de la página como una cadena de texto
            contenido = pagina.to_text()
            # Agregar el contenido al diccionario con el número de página como clave
            resultado[str(i+1)] = contenido
    
        return resultado
    

    Este código debería devolver un diccionario donde cada clave es el número de página (como una cadena de texto) y el valor correspondiente es el contenido de esa página. Si deseas utilizar otro paquete, puedes probar Aspose Words para Python, que proporciona un método split_document_to_pages que divide un documento de Word en páginas individuales. Aquí tienes un ejemplo de código:

    import aspose.words as aw
    
    def leer_word(ruta_archivo):
        """
        Función que lee un archivo de Word y devuelve un diccionario donde las claves son los 
        números de página y los valores son el contenido de cada página.
        """
        # Cargar el documento
        doc = aw.Document(ruta_archivo)
    
        # Dividir el documento en páginas
        paginas = doc.split_document_to_pages()
    
        # Crear un diccionario vacío para almacenar el resultado
        resultado = {}
    
        # Recorrer cada página y agregarla al diccionario
        for i, pagina in enumerate(paginas):
            # Obtener el contenido de la página como una cadena de texto
            contenido = pagina.get_text()
            # Agregar el contenido al diccionario con el número de página como clave
            resultado[str(i+1)] = contenido
    
        return resultado
    

    Este código también debería devolver un diccionario donde cada clave es el número de página (como una cadena de texto) y el valor correspondiente es el contenido de esa página. Ten en cuenta que deberás instalar el paquete Aspose Words para Python utilizando pip install aspose.words.

Comments are closed.