Количество слов из программы txt-файла

Я считаю слово txt-файла следующим кодом:

#!/usr/bin/python file=open("D:\\zzzz\\names2.txt","r+") wordcount={} for word in file.read().split(): if word not in wordcount: wordcount[word] = 1 else: wordcount[word] += 1 print (word,wordcount) file.close(); 

это дает мне результат следующим образом:

 >>> goat {'goat': 2, 'cow': 1, 'Dog': 1, 'lion': 1, 'snake': 1, 'horse': 1, '': 1, 'tiger': 1, 'cat': 2, 'dog': 1} 

но я хочу, чтобы результат был следующим образом:

 word wordcount goat 2 cow 1 dog 1..... 

Также я получаю дополнительный символ на выходе (  ). Как я могу удалить это?

Смешные символы, с которыми вы сталкиваетесь, – это спецификация UTF-8 (знак порядка байтов) . Чтобы избавиться от них, откройте файл, используя правильную кодировку (я предполагаю, что вы на Python 3):

 file = open(r"D:\zzzz\names2.txt", "r", encoding="utf-8-sig") 

Кроме того, для подсчета вы можете использовать collections.Counter :

 from collections import Counter wordcount = Counter(file.read().split()) 

Отображение их также легко:

 >>> for item in wordcount.items(): print("{}\t{}".format(*item)) ... snake 1 lion 2 goat 2 horse 3 
 #!/usr/bin/python file=open("D:\\zzzz\\names2.txt","r+") wordcount={} for word in file.read().split(): if word not in wordcount: wordcount[word] = 1 else: wordcount[word] += 1 for k,v in wordcount.items(): print k, v 
 import sys file=open(sys.argv[1],"r+") wordcount={} for word in file.read().split(): if word not in wordcount: wordcount[word] = 1 else: wordcount[word] += 1 for key in wordcount.keys(): print ("%s %s " %(key , wordcount[key])) file.close(); 

Если вы используете graphLab, вы можете использовать эту функцию. Это действительно мощный

 products['word_count'] = graphlab.text_analytics.count_words(your_text) 
 FILE_NAME = 'file.txt' wordCounter = {} with open(FILE_NAME,'r') as fh: for line in fh: # Replacing punctuation characters. Making the string to lower. # The split will spit the line into a list. word_list = line.replace(',','').replace('\'','').replace('.','').lower().split() for word in word_list: # Adding the word into the wordCounter dictionary. if word not in wordCounter: wordCounter[word] = 1 else: # if the word is already in the dictionary update its count. wordCounter[word] = wordCounter[word] + 1 print('{:15}{:3}'.format('Word','Count')) print('-' * 18) # printing the words and its occurrence. for (word,occurance) in wordCounter.items(): print('{:15}{:3}'.format(word,occurance)) 

#

  Word Count ------------------ of 6 examples 2 used 2 development 2 modified 2 open-source 2