Perl to Python
Tim Hammerquist
tim at vegeta.ath.cx
Tue Nov 27 20:01:19 EST 2001
Andrew Dalke <dalke at dalkescientific.com> graced us by uttering:
>
> Tim Hammerquist:
>>Pipes can be opened using os.popen(). Pipes can be read/written
>>by reading from/writing to the file object returned by
>>os.popen(). Read from this as normal in Python, just as you're
>>reading from the SQL filehandle in the perl code.
>>
>> # Perl open PIPE, "ls /etc" or die "can't read from pipe:
>> $!\n"; print while <PIPE>; close PIPE;
>>
>> # Python (roughly) pipe = os.popen('ls /etc') while 1: line
>> = pipe.readline() if not line: break print line retval =
>> pipe.close()
>
> The Python isn't quite equivalent to the Perl since 'print' adds
> the newline after printing. You'll either need to chomp off the
> final newline or use sys.stdout.write(line).
Why not just
print line,
??
Or you could be really counterintuitive and do:
print line[:-1] # ;) (yes, only in *nix/mac)
> Assuming Python 2.2 iterators, this can be written
>
> pipe = os.popen('ls /etc')
> for line in pipe:
> sys.stdout.write(line)
> retval = pipe.close()
Is the "for var in fileobj:" syntax new in 2.2? Right on! Thx.
Tim Hammerquist
--
It has been truly said that hackers have even more words for
equipment failures than Yiddish has for obnoxious people.
-- Jargon File 4.3.1
More information about the Python-list
mailing list