[Tutor] Major newbie question..

Gerrit Holl Gerrit Holl <gerrit@nl.linux.org>
Wed, 10 Nov 1999 14:30:34 +0100

Kevin Liang wrote:
> This might seem like a lame question, but I'm following a tutorial on a web page, and its at a point where you're
> supposed to create a  program to count the words in a file.  As you can
> see, I'm a little stumped..any pointers/tips would be appreciated.   The
> thing runs, but not correctly.  I thought that adding .inp=
> resp.readlines(): would do the trick, but I guess not.  Thanks in
> advance
> Kevin
> import string
> def numwords(s):
>     list = string.split(s) # need to qualify split() with string module
>     return len(list) # return number of elements in list
> resp = raw_input("Enter a filename :  ")
> inp = resp
> total = 0  # initialise to zero; also creates variable
> for line in resp:
>     total = total + numwords(line) # accumulate totals for each line
> print "File had %d words" % total

You can do it much easier:

# untested code

import string
filename = raw_input("Enter filename: ")
filecontents = open(filename, 'r').read()
numwords = string.split(filecontents)
print "File had %d words" % numwords

I'm learning C and have just done it in C. Much more than 5 LOC :-)

Shortest way:

import string
print "File has %d words" % string.split(open(raw_input("Enter filename: "), 'r').read())


linuxgames.nl.linux.org	 All about games on Linux in Dutch (under construction).
www.nl.linux.org	       The Dutch resource for Dutch Linux documentation.
www.nl.linux.org/discoverb		    Learn foreign words and definitions.
www.nl.linux.org/~gerrit/asperger	 I'm an Asperger, go here for more info.
www.nl.linux.org/~gerrit			    About me and pictures of me.