doubling the number of tests, but not taking twice as long

Neil Cerutti neilc at norwich.edu
Tue Jul 17 11:43:33 EDT 2018


On 2018-07-16, Larry Martell <larry.martell at gmail.com> wrote:
> I had some code that did this:
>
> meas_regex = '_M\d+_'
> meas_re = re.compile(meas_regex)
>
> if meas_re.search(filename):
>     stuff1()
> else:
>     stuff2()
>
> I then had to change it to this:
>
> if meas_re.search(filename):
>     if 'MeasDisplay' in filename:
>         stuff1a()
>     else:
>         stuff1()
> else:
>     if 'PatternFov' in filename:
>         stuff2a()
>    else:
>         stuff2()
>
> This code needs to process many tens of 1000's of files, and it
> runs often, so it needs to run very fast. Needless to say, my
> change has made it take 2x as long. Can anyone see a way to
> improve that?

Can you expand/improve the regex pattern so you don't have rescan
the string to check for the presence of MeasDisplay and
PatternFov? In other words, since you're already using the giant,
Swiss Army sledgehammer of the re module, go ahead and use enough
features to cover your use case.

-- 
Neil Cerutti



More information about the Python-list mailing list