tm = open('pg35.txt','r') dict = {} arr_v = [] arr_k = [] placeholder = None itera = True # split all text in the book in words and save the count of same word for line in tm: line = line.strip() line = line.translate(None,'!@#$%^&*()_+`~{}[\\]:"|\';<>?/.,<>-=') line = line.lower() list = line.split(' ') for word in list: if word in dict: count = dict[word] count += 1 dict[word] = count else: dict[word] = 1 # assing dictonary to array for sort for word,count in dict.iteritems(): arr_v.append(count) arr_k.append(word) # dictionary sort desc while itera: itera = False for item in range(0,len(arr_v)-1): if arr_v[item] < arr_v[item+1]: itera = True placeholder=arr_v[item+1] arr_v[item+1]=arr_v[item] arr_v[item]=placeholder placeholder=arr_k[item+1] arr_k[item+1]=arr_k[item] arr_k[item]=placeholder # write ordered result to file res = open('result.txt','w') for item in arr_k: res.write("The word \"" + item + "\" is present " + str(dict[item]) + " times. \n") res.close()