regular expression error ?

Bruno Desthuilliers bdesth.quelquechose at free.quelquepart.fr
Mon May 15 20:58:30 EDT 2006


Lance Hoffmeyer a écrit :
> why isn't re.search recognizing "file"?  I can print the contents of "file".
> 
> 
> import win32com.client
> import re
> 
> D=MSWord.Documents.Open('C:/test/Test.doc')
> file=D.Content
> print file
> 
> match = re.search('(Table ?)', file)
> if match:
>    print "Table Number is: ", match.group(1)
> 
> 
> Traceback (most recent call last):
>   File "test.py", line 21, in ?
>     match = re.search('(Table ?)', file)
>   File "C:\Python24\Lib\sre.py", line 134, in search
>     return _compile(pattern, flags).search(string)
> TypeError: expected string or buffer

The fact that you can print 'file' doesn't mean it's a string. You may 
want to try this:

(...)
# let's see what it really is:
print type(D.Content), repr(D.Content)
# and try to make it usable for re:
file = str(D.Content)
(...)

NB : not tested, I don't have Word on my Linix box !-)



More information about the Python-list mailing list