# Cuenta artículos determinaos nun testu. # Versión 2: # - pidi nome del ficheru # - optimización de la sustitución # Versión 3: # - pidi nome del ficheru col ratón # - función pa eliminar lo que nun son lletres y espacios # Escrito por José A. Corrales 28-nov-2023 # pal diálogu d'apertura de ficheros from tkinter import filedialog def quita_non_lletres(testu): # devuelve un testu pero solo con lletres y espacios # lletres (valen les minúscules) lletres="abcdefghijklmnñopqrstuvwxyz"+"áéíóúü" # p'anotar y nun repetir los caracteres yá cambiaos ya_cambiaos="" for c in testu: if c not in lletres+" "+ya_cambiaos: testu=testu.replace(c," ") # yá se cambió una vez, nun fae falta repetilo ya_cambiaos=ya_cambiaos+c return testu # Programa principal # nome del ficheru a procesar #nome_ficheru="Don Quijote de la Mancha texto.txt" #nome_ficheru=input("nome del ficheru a procesar: ") nome_ficheru=filedialog.askopenfilename( title="Seleccione'l nome del ficheru a analizar", filetypes=(("ficheros de testu","*.txt"),) ) if nome_ficheru=="": print("nun s'especificó un ficheru pa analizar") exit() # llista d'artículos articulos="el la lo los las".split() # llectura de datos ficheru=open(nome_ficheru) testu=ficheru.read() # too na misma cadena ficheru.close() # se pasa too a minúscules testu=testu.lower() # eliminación de tolo que nun son lletres y espacios testu=quita_non_lletres(testu) # nesti puntu tenemos una cadena con solo lletres y espacios llista_palabres=testu.split() # cuenta artículos contador=0 for articulu in articulos: contador=contador+llista_palabres.count(articulu) # resultaos print("hai",contador,"artículos determinaos nel ficheru",nome_ficheru)