Andrew Robert wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Wow!!.. > > That awesome! > > > My goal was not to make it a one-liner per-se.. > > I was simply trying to show the functionality I was trying to duplicate. > > Boiling your one-liner down into a multi-line piece of code, I did: > > #!c:\python24\python > > import re,sys > > a = open(r'e:\pycode\csums.txt','rb').readlines() > > for line in a:
You probably want to open the file in text mode, not binary. You don't have to read all the lines of the file, you can iterate reading one line at a time. Combining these two changes, the above two lines consolidate to for line in open(r'e:\pycode\csums.txt'): > print re.sub(r'([^\w\s])', lambda s: '%%%2X' % ord(s.group()), line) > > > Breaking down the command, you appear to be calling an un-named function > to act against any characters trapped by the regular expression. > > Not familiar with lamda :). It is a way to make an anonymous function, occasionally abused to write Python one-liners. You could just as well spell it out: def hexify(match): return ''%%%2X' % ord(match.group()) print re.sub(r'([^\w\s])', hexify, line) > > The un-named function does in-place transformation of the character to > the established hex value. > > > Does this sound right? Yes. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor