Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: Need help capturing output of re.search

Reply
Thread Tools

Re: Need help capturing output of re.search

 
 
John Machin
Guest
Posts: n/a
 
      06-26-2008
On Jun 27, 8:31 am, (E-Mail Removed) wrote:
> Hi -
>
> I need help capturing the output of a RegEx search.
> I dont understand why this conditional fails.
>
> Here is the code:
>
> #================================= start snip
> ======================================
> #!/usr/local/bin/python
>
> import os
> import re
>
> dirName = '/home/user/bin/logs'
> os.chdir(dirName)
> files = os.listdir(dirName)
> for myFile in files:
> # print 'checking ...', myFile
> reCheck = ''
> reCheck = re.search(r'\bCC_', myFile)
> # print 'reCheck = ', '=', reCheck, '='
>
> if reCheck == "None":
> print myFile, ' ..... does not qualify'
> else:
> print ' ', myFile, 'qualifies...', reCheck
>
> #================================= end snip
> ======================================
>
> The problem is that reCheck never == None.
> So all of the files "qualify". My understanding of the
> re.search (re.search(r'\bCC_', myFile)) is ...
> 1) give me only files that start with a word boundary (\b)
> 2) followed by a (CC_)
> 3) in myFile
>
> Why doesn't the output of the re.search load reCheck with valid data?
> (like "None")



Because "None" is not "valid data" in this case. re.search returns
None or a MatchObject instance.

>>> type(None)

<type 'NoneType'>
>>> type("None")

<type 'str'>
>>> None == "None"

False
>>>


You may like to read this: http://www.amk.ca/python/howto/regex/

If you want to check for strings that start with some condition, you
need re.match, not re.search.

You don't need the '\b'; re.match(r'CC_', filename) would do the job.

But then so would filename.startswith('CC_')

HTH,
John

 
Reply With Quote
 
 
 
 
John Machin
Guest
Posts: n/a
 
      06-27-2008
On Jun 27, 10:01 am, (E-Mail Removed) wrote:
> >You may like to read this:http://www.amk.ca/python/howto/regex/

>
> This is a good resource. Thank you.
> Someone else pointed out that I needed to change the
>
> if reCheck == "None":
>
> to
>
> if reCheck == None: # removed the "s


"Somebody else" should indeed remain anonymous if they told you that.
Use
if reCheck is None:
or even better:
if not reCheck:

It's not obvious from your response if you got these points:
(1) re.match, not re.search
(2) filename.startswith does your job simply and more understandably

 
Reply With Quote
 
 
 
 
John Machin
Guest
Posts: n/a
 
      06-27-2008
On Jun 27, 10:45 am, (E-Mail Removed) wrote:
> On Jun 26, 5:12 pm, John Machin <(E-Mail Removed)> wrote:
>
>
>
> > On Jun 27, 10:01 am, (E-Mail Removed) wrote:

>
> > > >You may like to read this:http://www.amk.ca/python/howto/regex/

>
> > > This is a good resource. Thank you.
> > > Someone else pointed out that I needed to change the

>
> > > if reCheck == "None":

>
> > > to

>
> > > if reCheck == None: # removed the "s

>
> > "Somebody else" should indeed remain anonymous if they told you that.
> > Use
> > if reCheck is None:
> > or even better:
> > if not reCheck:

>
> > It's not obvious from your response if you got these points:
> > (1) re.match, not re.search
> > (2) filename.startswith does your job simply and more understandably

>
> Understood. I replaced re.search with re.match (although both work)


Not so. Consider a filename that starts with some non-alphanumeric
characters followed by CC_ e.g. "---CC_foo". re.search will score a
hit but re.match won't. It's quite simple: if you want hits only at
the beginning of the string, use re.match. Please don't say "I don't
have any filenames like that, so it doesn't matter" ... it's like
saying "They couldn't hit an elephant at this distance".

> can filename.startswith be used in a conditional? ala:
>
> if filename.startswith('CC_'):
> processtheFile()


Of course. *Any* expression can be used in a condition. This one
returns True or False -- a prime candidate for such use. Why are you
asking?
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Capturing output form console kaushik.krishnakumar@gmail.com Java 2 02-16-2006 04:27 AM
Capturing output form console kaushik.krishnakumar@gmail.com Java 0 02-15-2006 11:02 AM
capturing the output of a JSP Andy Fish Java 4 02-11-2004 03:07 PM
Capturing print output from a pdf file none Computer Support 3 08-05-2003 10:12 AM
Capturing ASPX output from another page Rick Strahl [MVP] ASP .Net 1 07-09-2003 07:34 PM



Advertisments