Word count from file help.

Paul McGuire ptmcg at users.sourceforge.net
Thu Feb 12 11:15:35 EST 2004


"jester.dev" <jester.dev at comcast.net> wrote in message
news:oiAWb.9926$jk2.28236 at attbi_s53...
> Hello,
>
>         I'm learning Python from Python Bible, and having some
> problems with this code below. When I run it, I get nothing. It
> should open the file poem.txt (which exists in the current
> directory) and count number of times any given word appears
> in the text.
>
Try this:

# wordCount.py
#
# invoke using:   python wordCount.py  <filename>
#
from pyparsing import Word, alphas
import sys

# modify this word definition as you wish - whitespace is implicit separator
wordSpec = Word(alphas)

if len(sys.argv) > 1:
    infile = sys.argv[1]

    wordDict = {}
    filetext = "\n".join( file(infile).readlines() )
    for wd,locstart,locend in wordSpec.scanString(filetext):
        #~ curWord = string.lower(wd[0])
        curWord = wd[0].lower()
        if wordDict.has_key( curWord ):
            wordDict[curWord] += 1
        else:
            wordDict[curWord] = 1

    print "%s has %d different words." % ( infile, len(wordDict.keys()) )
    keylist = wordDict.keys()
    keylist.sort( lambda a,b:
                    ( wordDict[b] - wordDict[a] ) or
                    ( ( ( a > b ) and 1 ) or ( ( a < b ) and -1 ) or 0 ) )
    for k in keylist:
        print k, ":", wordDict[k]





More information about the Python-list mailing list