-----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:
    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 :).

The un-named function does in-place transformation of the character to
the established hex value.


Does this sound right?

If I then saved the altered output to a file and wanted to transform it
back to its original form, I would do the following in perl.


perl -ple 's/(?:%([0-9A-F]{2}))/chr hex $1/eg' somefiletxt

How would you reverse the process from a python point of view?


<snip>

</snip>
Karl Pflästerer wrote:
> python -c "import re, sys;print re.sub(r'([^\w\s])', lambda s: '%%%2X' % 
> ord(s.group()), sys.stdin.read())," < somefile
> 
> It's not as short as the Perl version (and might have problems with big
> files). Python does not have such useful command line switches like -p
> (but you doesn't use Python so much for one liners as Perl) but it does
> the same ; at least in this special case (Python lacks something like the
> -l switch).
> 
> With bash it's a bit easier. (maybe there's also a way with cmd.com to
> write multiple lines)?
> 
> $ python -c "import re,sys
> for line in sys.stdin: print re.sub(r'([^\w\s])', lambda s: '%%%2X' % 
> ord(s.group()), line)," < somefile
> 
> 
>    Karl

- --
Thank you,
Andrew Robert
Systems Architect
Information Technologies
MFS Investment Management
Phone:   617-954-5882

E-mail:  [EMAIL PROTECTED]
Linux User Number: #201204
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (MingW32)

iD8DBQFEdPFwDvn/4H0LjDwRAuzuAKCOPja9Js1ueP2GoT+B0hoFubDEegCguzfT
QL87gmKUx6znmGQxXqg6V+A=
=7MT2
-----END PGP SIGNATURE-----
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to