converting a sed / grep / awk / . . . bash pipe line into python
Roy Smith
roy at panix.com
Wed Sep 3 16:54:12 EDT 2008
In article <g9m6at$a71$01$1 at news.t-online.com>,
Peter Otten <__peter__ at web.de> wrote:
> Roy Smith wrote:
>
> > In article <g9lvc5$8qq$03$1 at news.t-online.com>,
> > Peter Otten <__peter__ at web.de> wrote:
> >
> >> > I might take it one step further, however, and do:
> >> >
> >> >> fields = line.split()[:2]
> >> >> a, b = map(int, fields)
> >> >
> >> > in fact, I might even get rid of the very generic, but conceptually
> >> > overkill, use of map() and just write:
> >> >
> >> >> a, b = line.split()[:2]
> >> >> a = int(a)
> >> >> b = int(b)
> >>
> >> If you go that route your next step is to introduce another try...except,
> >> one for the unpacking and another for the integer conversion...
> >
> > Why another try/except? The potential unpack and conversion errors exist
> > in both versions, and the existing try block catches them all. Splitting
> > the one line up into three with some intermediate variables doesn't change
> > that.
>
> As I understood it you didn't just split a line of code into three, but
> wanted two processing steps. These logical steps are then somewhat remixed
> by the shared error handling. You lose the information which step failed.
> In the general case you may even mask a bug.
>
> Peter
Well, what I really wanted was two conceptual steps, to make it easier for
a reader of the code to follow what it's doing. My standard for code being
adequately comprehensible is not that the reader *can* figure it out, but
that the reader doesn't have to exert any effort to figure it out. Or even
be aware that there's any figuring-out going on. He or she just reads it.
More information about the Python-list
mailing list