[Tutor] Finding word in file

Bernard Lebel 3dbernard at gmail.com
Wed May 18 16:35:27 CEST 2005


Ooops, a part of my code was missing, sorry about that. Here is it
again, complete.


def parseText():
	
	# oFile: text file to test
	# myWord: word we are looking for
	
	# Get all lines into list
	aLines = oFile.readlines()
	
	# Perform list comprehension on lines to test if the word is found
	for sLine in aLines:
		
		# Parse the line (remove spaces), returns list
		aLine = sLine.split()
		
		# Iterate words and test to see if they match our word
		for sWord in aLines:
			# if it matches, append it to our list
			if sWord == myWord: aWords.append( sWord )



# Create empty list to store all instances of the word that we may find
aWords = []

# Prompt user to know what word to search
myWord = str( raw_input( 'what word to searh:' ) )

# Call function
parseText()

# Check if list has at least one element
if len( aWords ) < 1: print 'Word not found in file'
else: print str( len( aWords ) ) + ' instances of our word found in file'


Sorry again
Bernard


On 5/18/05, Bernard Lebel <3dbernard at gmail.com> wrote:
> Hi Joseph,
> 
> To answer your last question first, you should use the
> os.path.exsits() method to see if the path is valid:
> http://www.python.org/doc/2.4.1/lib/module-os.path.html
> 
> As for finding a word in a text, I would suggest to write a basic text
> parser that would work on small files.
> 
> def parseText():
> 
>         # oFile: text file to test
>         # myWord: word we are looking for
> 
>         # Get all lines into list
>         aLines = oFile.readlines()
> 
>         # Perform list comprehension on lines to test if the word is found
>         for sLine in aLines:
> 
>                 # Parse the line (remove spaces), returns list
>                 aLine = sLine.split()
> 
>                 # Iterate words and test to see if they match our word
>                 for sWord in aLines:
>                         # if it matches, append it to our list
>                         if sWord == myWord: aWords.append( sWord )
> 
> # Create empty list to store all instances of the word that we may find
> aWords = []
> 
> # Prompt user to know what word to search
> myWord = str( raw_input( 'what word to searh:' ) )
> 
> Note that I'm still new to Python, there might be more efficient ways
> to do that.
> 
> For larger text files (in the order of thousands of lines), you may
> not use readlines() to build a list of the lines and insteand read one
> line after another with readline() or xreadline() and append to the
> list as you find the word.
> 
> Cheers
> Bernard
> 
> 
> On 5/18/05, Joseph Quigley <cpu.crazy at gmail.com> wrote:
> > I'm making a program that opens a file and tries to find the word you specify.
> > I can't get  it to find the word! I also would like to know how I can get
> > it to print 2 lines above and 2 lines below the line with the word specified.
> > One more thing, the try: IOError won't work... I type the name of a
> > nonexistent file and the except won't kick in and print my error message!
> > Not to mention the program is killed. How can i fix that?
> > Thanks,
> >          JQ
> >
> > Full Code:
> >
> > while True:
> >      file_name = raw_input("Enter the full file name: ")
> >      f = file(file_name, 'r')
> >      try:
> >          IOError
> >      except:
> >          print "File not found. Directories are not supported"
> >
> >      while True:
> >          line = f.readline()
> >          if len(line) == 0:
> >              break
> >          find_word = raw_input("What word do you want to find (quit() to
> > quit)?\n> ")
> >          if find_word in file_name:
> >              print f.readline(find_word)
> >          elif find_word == "quit()":
> >              break
> >          print line,
> >      f.close()
> >
> >      close = raw_input("\n\nQuit program? (Y/N)> ")
> >      if ((close == "Y") or ("y" == close)):
> >          break
> >      else:
> >         print
> >
> > _______________________________________________
> > Tutor maillist  -  Tutor at python.org
> > http://mail.python.org/mailman/listinfo/tutor
> >
>


More information about the Tutor mailing list