wordsortcount.py
Usage: python wordsortcount.py <filnavn> [f] <filnavn> tekstfil tæller forekomster af ord og udskriver sorteret liste default orden er stigende kan ændres til faldende med f option. """
Size 1.5 kB - File type text/python-sourceFile contents
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""Usage: python wordsortcount.py <filnavn> [f]
<filnavn> tekstfil
tæller forekomster af ord og udskriver sorteret liste
default orden er stigende kan ændres til faldende med f option.
"""
import sys, os
def cmp_antal( x , y ):
return cmp( x[ 1 ], y[ 1 ] )
def countwords( FName, stigende_orden=True):
"""
Read file FName
and returns a list [('word',1), ('dss',2), ..]
sorteret efter antal forekomster.
stigende eller faldende orden afhængig af parameteren stigende_order
"""
file = open( FName )
worddict = {} # Hash key build in python type
text = file.read().strip()
for line in text.splitlines():
words = line.split()
for word in words:
word = word.lower()
if worddict.has_key( word ):
worddict[word] = worddict[word] + 1
else: # First time word is found
worddict[word] = 1
res_list = worddict.items()
res_list.sort(cmp_antal)
if not stigende_orden:
res_list.reverse()
return res_list
if __name__ == "__main__":
try:
FName = sys.argv[ 1 ]
except:
print "mangler filnavn"
print __doc__
sys.exit( 1 )
stigende = True
if len( sys.argv ) > 2:
if sys.argv[ 2 ] == 'f':
stigende = False
res = countwords( FName, stigende_orden=stigende )
print res
for ( word, antal ) in res:
print "%(word)-25s, %(antal)d" % vars()
Click here to get the file