On 03/17/2016 09:36 AM, Charles T. Smith wrote:

Yes, your point was to forgo REs despite that they are useful.
I could have thought the search would have been better as:

     'release[-.:][Rr]eq'

or something else ... you're in a "defend python at all costs!" mode.

No, I'm in the "don't try to write <language X> in Python" mode, and "don't use 10lb sledge when 6oz hammer will do" mode:

--------------------------------------------------------
# using `in` and printing line as each is found
real    0m1.703s
user    0m0.184s
sys     0m0.260s

# using `in` and printing lines at the end
real    0m0.217s
user    0m0.112s
sys     0m0.068s

# using 're' and printing lines at the end
real    0m0.608s
user    0m0.516s
sys     0m0.060s
--------------------------------------------------------

As you can see, how you print has a huge impact. Hopefully you also noticed that using `re` when `in` would do made the script 3 times slower.

--------------------------------------------------------
# using `in` code
import sys
found = []
for fn in sys.argv[1:]:
   with open(fn) as fh:
      for line in fh:
         if 'timezone' in line:
            found.append(line)
print ''.join(found)
--------------------------------------------------------
# using `re` code
import sys
import re
found = []
for fn in sys.argv[1:]:
   with open(fn) as fh:
      for line in fh:
         if re.search('timezone', line):
            found.append(line)
print ''.join(found)
--------------------------------------------------------

--
~Ethan~
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to