Python vs. Ruby (and os.path.walk)
Steven Atkinson
sja at san.rr.com
Fri Aug 9 12:47:03 EDT 2002
Thanks for everyone's response. The test programs I wrote were just
tests to get a quick feeling for how easy it feel to program in each
language.
Much to my embarrassment, I can not reproduce my python slowness right
now. I ran 3 tests yesterday and a few today. All took 3 minutes. I
did some tweaks and sped the code up some, but not a whole lot. Then I
took out all screen IO and really sped the code up. I put the IO back
in and now the code is still acceptable in terms of speed (though
slightly slower than Ruby).
The original code was:
-----------------------------
#!/usr/bin/python
import os
import re
def lister(dummy,dirname, filesindir):
match = re.compile("(.tl[hb]$)|(_i.c$)|(._p/c$)")
for fname in filesindir:
path = os.path.join(dirname,fname)
if not os.path.isdir(path):
if match.search(path):
print path
os.path.walk('c:\\src',lister,None)
I changed it to:
------------------------
#!/usr/bin/python
import os
import re
def lister(match,dirname, filesindir):
for fname in filesindir:
if match.search(fname):
path = os.path.join(dirname,fname)
print path
match = re.compile("(.tl[hb]$)|(_i.c$)|(._p/c$)")
os.path.walk('c:\\src',lister,match)
The second is faster. They are both decent. Thanks again.
Signed plerplexed and embarrassed.
More information about the Python-list
mailing list