By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,279 Members | 2,146 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,279 IT Pros & Developers. It's quick & easy.

where is the awk to python translator program

P: n/a
An old dog can't learn new tricks, so where's the a2py awk to python
translator? Perl has a2p. E.g. today I wonder how to do '{print
$1}', well with a2p I know how to do it in perl, but with python I am
supposed to hunker down with the manuals.
Jul 18 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a

Dan> An old dog can't learn new tricks, so where's the a2py awk to python
Dan> translator? Perl has a2p.

Sorry, Python doesn't have such a beast. There's never been enough demand.

Dan> E.g. today I wonder how to do '{print $1}', well with a2p I know
Dan> how to do it in perl, but with python I am supposed to hunker down
Dan> with the manuals.

Python doesn't have the implicit looping and splitting into fields that awk
has, so you need to loop over the input and split the fields yourself:

import sys
for line in sys.stdin:
print line.split()[0] # == '{print $1}'

There's also no global field separator variable. Suppose I wanted to print
the first field in each row of my passwd file. The split() method, when
called as above with no arguments, will split the string on any runs of
whitespace. If given a string parameter it will split the string on that
string. Here's some input and output pasted from an interactive session:
for line in file("/etc/passwd"):

... print line.split(":")[0]
...
root
bin
daemon
adm
lp
... and so on ...

Obviously, Python is not as concise as awk for the sorts of things awk is
good at, but then Python is good for a lot more things than awk is. ;-)

Skip

Jul 18 '05 #2

P: n/a
Why translate? PyAWK may do what you need:

http://pyawk.sourceforge.net/

I don't have any direct experiences with it, but it does look
interesting.
Dan Jacobson wrote:
An old dog can't learn new tricks, so where's the a2py awk to python
translator? Perl has a2p. E.g. today I wonder how to do '{print
$1}', well with a2p I know how to do it in perl, but with python I am
supposed to hunker down with the manuals.


Jul 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.