[code language=”python”]
import re
import codecs
LIBRO = ‘QUIJOTE’
num_tweet = 1
PATRON = ‘(W)’
LONGITUD_FRAGMENTO = 180
LONGITUD_TWEET = 140
CABECERA = ‘{libro} {num_tweet}. ‘
## Cargo el texto. El original en
## http://www.gutenberg.org/files/2000/old/2donq10.txt
## He suprimido los encabezados, incluyendo el prólogo
## de Cervantes y los sonetos, para empezar por el
## emblemático ‘En un lugar de La Mancha…’ —-
fichero = codecs.open(‘quijote.txt’, ‘r’, ‘utf-8’)
quijote = fichero.read()
fichero.close()
## En este algoritmo, el texto se va recortando por
## su principio según se va usando —-
while quijote:
## Se toman 180 caracteres, que sobren, para recortar —-
quijote_fragmento = quijote[:LONGITUD_FRAGMENTO]
## La cabecera es ‘QUIJOTE 125. ‘, por ejemplo —-
cabecera = CABECERA.format(libro=LIBRO, num_tweet=num_tweet)
longitud_cabecera = len(cabecera)
## Esto serán los caracteres disponibles para tuitear —-
longitud_disponible = LONGITUD_TWEET – longitud_cabecera
## Aquí troceamos por palabras. Si la plantilla incluye
## paréntesis en los grupos de captura, también se guardan
## los separadores. Ver documentación Python:
## https://docs.python.org/3.4/library/re.html —-
pedazos_fragmento = re.split(PATRON, quijote_fragmento)
## Tomamos los, digamos, 20 fragmentos, y vamos quitando
## del final (19, 18…), hasta que el número de caracteres
## que quedan encajan en el espacio disponible —-
for i in range(len(pedazos_fragmento), 0, -1):
tweet_menguante = ”.join(pedazos_fragmento[:i])
if len(tweet_menguante) <= longitud_disponible:
## Cuando ya cabe, unimos cabecera y cuerpo y listo —-
tweet = cabecera + tweet_menguante
num_tweet += 1
quijote = quijote.replace(tweet_menguante, ”, 1)
## Ya podemos salir del bucle de trozos menguantes —-
break
## Aquí imprimimos el tuit, o lo guardamos en una base de datos
## para usarlos ya pretroceados más adelante —-
#print(tweet)
if num_tweet % 100 == 0: print(num_tweet)
[/code]
3 replies on “Tuitear El Quijote!”
Diego queremos ponernos en contacto contigo para dar cabida a ésta iniciativa y darla a conocer en la Radio Televisión de Castilla-La Mancha.
Muchas gracias
Pues mi comentario es para lo mismo de Irene, pero en Onda Cero Ceuta, Diego. Saludos y enhorabuena por la iniciativa
[…] troceado de El Quijote en tuits lo hice mediante un algoritmo que está explicado aquí. La idea es tomar unos 180 caracteres cada vez e ir eliminando palabras enteras hasta que el resto […]