- Leer el Quijote en Python ← (es el post en el que estamos)
- Buscar una palabra en un libro con Python
- Frecuencia de caracteres en El Quijote
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.
import os
ResponderEliminaros.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)
esto no lee una puta mierda
ResponderEliminar