String find and replace

Gerhard Häring gh at ghaering.de
Tue Aug 26 19:32:24 EDT 2003


hokieghal99 wrote:
> import os, string
> print " "
> setpath = raw_input("Enter the path: ")
> def find_replace(setpath):
>    for root, dirs, files in os.walk(setpath):
>       fname = files
>       for fname in files:
>          find = string.find(file(os.path.join(root,fname), 'rb').read(), 
> 'THIS')
>          print find
>          if find >=1:
>              replace = string.replace(str, 'THIS', 'THAT')
                                         ^^^

In your app, what do you think 'str' is?

You haven't defined it, but it still exists. It's the string type, *not* 
a particular string (cos you haven't defined it). That's why you get the 
error below:

> find_replace(setpath)
> print " "
> 
> Why doesn't this work? I get this error:
> 
> Traceback (most recent call last):
>   File "html_find_replace.py", line 12, in ?
>     find_replace(setpath)
>   File "html_find_replace.py", line 11, in find_replace
>     replace = string.replace(str, 'THIS', 'THAT')
>   File "/usr/local/lib/python2.3/string.py", line 370, in replace
>     return s.replace(old, new, maxsplit)
> TypeError: expected a character buffer object

-- Gerhard





More information about the Python-list mailing list