¿Un progtwig que abre un archivo de texto, cuenta la cantidad de palabras e informa las N palabras principales ordenadas por la cantidad de veces que aparecen en el archivo?

Hola a todos, soy un principiante en progtwigción, recientemente se me encomendó la tarea de crear este progtwig y lo encuentro difícil. Anteriormente, he diseñado un progtwig que calcula el número de palabras en una oración que escribe el usuario. ¿Es posible modificar este progtwig para lograr lo que quiero?

import string def main(): print "This program calculates the number of words in a sentence" print p = raw_input("Enter a sentence: ") words = string.split(p) wordCount = len(words) print "The total word count is:", wordCount main() 

Utilice collections.Counter Contador para contar palabras y abrir () para abrir el archivo:

 from collections import Counter def main(): #use open() for opening file. #Always use `with` statement as it'll automatically close the file for you. with open(r'C:\Data\test.txt') as f: #create a list of all words fetched from the file using a list comprehension words = [word for line in f for word in line.split()] print "The total word count is:", len(words) #now use collections.Counter c = Counter(words) for word, count in c.most_common(): print word, count main() 

collections.Counter Ejemplo de encuentro:

 >>> from collections import Counter >>> c = Counter('aaaaabbbdddeeegggg') 

Counter.most_common devuelve las palabras en orden ordenado en función de su cuenta:

 >>> for word, count in c.most_common(): ... print word,count ... a 5 g 4 b 3 e 3 d 3 

Para abrir archivos, puedes usar la función abrir .

 from collections import Counter with open('input.txt', 'r') as f: p = f.read() # p contains contents of entire file # logic to compute word counts follows here... words = p.split() wordCount = len(words) print "The total word count is:", wordCount # you want the top N words, so grab it as input N = int(raw_input("How many words do you want?")) c = Counter(words) for w, count in c.most_common(N): print w, count 
 import re from collections import Counter with open('file_name.txt') as f: sentence = f.read() words = re.findall(r'\w+', sentence) word_counts = Counter(words) 

Si alguien más recibe el mensaje de error para la entrada, puede intentar este,

Código:

N = int (entrada (“\ nCuantas palabras quieres:”))