sábado, 7 de octubre de 2017

Leer el Quijote en Python

Esta entrada forma parte de un grupo de artículos donde trabajamos con caracteres y palabras usando como libro de ejemplo El Quijote.

Puede descargar el archivo: caracteres_quijote.py
Puede descargar el archivo: quijote.txt

Podemos ver el código en el siguiente enlace de repl.it:

Vamos a trabajar sobre un gran archivo de texto puro, con extensión txt. Se trata de la primera parte del Quijote. Hemos creado un código en Python que recorrerá todo el texto letra a letra buscando todos los caracteres y mostrándonos los caracteres no repetidos. Finalmente ordenaremos alfabéticamente esta lista de caracteres únicos.

Captura de pantalla realizada con Scrot en una Raspberry Pi 2 corriendo Raspbian.


#abrimos quijote.txt y buscamos todos los caracteres que contiene
f=open("quijote.txt")
libro=f.read()
texto=""
for letra in libro:
 if not(letra in texto):
  texto+=letra
texto="".join(sorted(texto))
print(texto)
f.close()

Vemos que en el libro de Cervantes no aparece la letra W, ni los dígitos numéricos. La letra ñ se encuentra en minúsculas pero no en mayúsculas. En el orden alfabético aparece junto a los signos de puntuación y letras acentuadas.


2 comentarios:

  1. import os
    os.getcwd()
    os.chdir("")
    os.getcwd()

    archivo = open("quijote.txt", "r", encoding = "utf-8")
    cont = archivo.read()
    cont = cont.lower()
    cont = cont.replace("\n"," ")
    cont = cont.split(" ")

    lista = []
    for p in cont:
    lista.append(p)
    A= ["á","é","í", "ó","ú"]
    B= ["a","e","i", "o","u"]
    j=0
    for p in lista:
    i=0
    for tilde in tA:
    if tilde in p:
    lista [j]= p.replace(A,B[i])
    i=i+1
    j=j+1
    conjunto = []
    for p in lista:
    existe= False
    for row in conjunto:
    if row[0] == p:
    row[1] += 1
    existe = True
    break
    if not existe:
    conjunto.append([p,1])
    conjunto.sort(key = lambda i : i[1], reverse = True)
    conjunto1 = conjunto[0:10]
    conjunto1.sort(key = lambda i : i[0])
    for i in [0,1,2,3,4,5,6,7,8,9]:
    print("Las más frecuente son: ", conjunto1[i])


    conjunto2 = conjunto[0:10]
    for i in [0,1,2,3,4,5,6,7,8,9]:
    print(“ son: ",conjunto2[i])
    conjunto.sort(key = lambda i : i[1], reverse = False)

    ResponderEliminar
  2. esto no lee una puta mierda

    ResponderEliminar