#!/usr/bin/python import sys, os, re pattern = re.compile('\w+') def words(): words = [] if len(sys.argv) > 1: for arg in sys.argv[1:]: input = open(arg) words += getwords(input) input.close() else: words += getwords(sys.stdin) words = unique(words) for word in words: print word def getwords(input): lines = input.readlines() data = ' '.join(lines) return pattern.findall(data) def unique(words): wordlist = {} for word in words: if wordlist.has_key(word): wordlist[word] += 1 else: wordlist[word] = 1 words = wordlist.keys() words.sort(lambda a, b: cmp(wordlist[b], wordlist[a])) return words # sorted by frequency if __name__ == '__main__': words() else: pass