[pyar] Identificar el caracter que se usa en un texto abierto como bytes

Guillermo Movia guillermo.movia en gmail.com
Mar Dic 25 20:49:52 -03 2018


Hola

Estoy intentando leer un texto extraído de un pdf y procesarlo para
convertirlo en un epub.

La parte de la cnversión de pdf a txt la hago con pdftotext que sale muy
bien. Pero después me gustaría hacerle un post-proceso para quitarle los
guiones que separan sílabas de una palabra y volver a juntarlas (en epub
no tiene sentido cortar las palabras).

En otro texto lo tomaba bien, pero por alguna razón en este nuevo no
detecta los "guiones", al menos no con la codificación b"\xc2\xad" que
usaba en el otro.

¿Cómo puedo saber en qué forma está mostrando esos guione? Se me ocurre
que puede estar usando otra codificación y por eso no los encuentra.

El código en Python que tengo es este

import re
libro = open("01-sociologia-introduccion.txt", "rb")

def abrir_documento(libro):
    """El objetivo de esta función, para más adelante, será el de abrir el
    documento que el usuario quiera limpiar"""
    libro = open(libro,"r")
    return libro

def limpiar_linea():
    """Lee cada línea del documento y limpia lo que no se necesita más"""
    lineas = list(libro.readlines())
    libro2 = open('01-sociologia-introduccion_limpio.txt','ab')
    for linea in lineas:
        if re.search(b"\xc2\xad$", linea):
            """ Con este reemplazo el final de las líneas que tienen guiones
            de separación para que no separe las palabras"""
            print(linea)
            linea = linea.replace(b"\xc2\xad\n", b"")
        linea = linea.decode("utf-8")
        if re.search("^\s{4,}[A-Z]{1}", linea) or
re.search("^\s{4,}—[A-Z]{1}", linea) or re.search("^\s{4,}¿",linea):
            """Busqueda de sangrias"""
            nueva_linea = re.compile("^\s{4,}")
            sangria = nueva_linea.sub("\n\n", linea)
            sin_saltos = re.compile("$\n")
            linea_sin_saltos = sin_saltos.sub(" ", sangria)
            libro2.write(linea_sin_saltos.encode())
        else:
            #sin_saltos = linea.rstrip()
            sin_saltos = re.compile("$\n")
            linea_sin_saltos = sin_saltos.sub(" ", linea)
            libro2.write(linea_sin_saltos.encode())

limpiar_linea()

¡Muchas gracias!
-- 
Guillermo Movia
PGP: 2438 6C0A 348F 7618 1485 8A18 688D 2AAE 13D1 CA7A

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20181225/0b73bc40/attachment.sig>


Más información sobre la lista de distribución pyar