What is built-in method sub

Jeremy jlconlin at gmail.com
Mon Jan 11 15:02:06 EST 2010


On Jan 11, 12:54 pm, Carl Banks <pavlovevide... at gmail.com> wrote:
> On Jan 11, 11:20 am, Jeremy <jlcon... at gmail.com> wrote:
>
> > I just profiled one of my Python scripts and discovered that >99% of
> > the time was spent in
>
> > {built-in method sub}
>
> > What is this function and is there a way to optimize it?
>
> I'm guessing this is re.sub (or, more likely, a method sub of an
> internal object that is called by re.sub).
>
> If all your script does is to make a bunch of regexp substitutions,
> then spending 99% of the time in this function might be reasonable.
> Optimize your regexps to improve performance.  (We can help you if you
> care to share any.)
>
> If my guess is wrong, you'll have to be more specific about what your
> sctipt does, and maybe share the profile printout or something.
>
> Carl Banks

Your guess is correct.  I had forgotten that I was using that
function.

I am using the re.sub command to remove trailing whitespace from lines
in a text file.  The commands I use are copied below.  If you have any
suggestions on how they could be improved, I would love to know.

Thanks,
Jeremy

lines = self._outfile.readlines()
self._outfile.close()

line = string.join(lines)

if self.removeWS:
    # Remove trailing white space on each line
    trailingPattern = '(\S*)\ +?\n'
    line = re.sub(trailingPattern, '\\1\n', line)



More information about the Python-list mailing list