Python vs. Perl
Keith Dart
kdart at kdart.com
Tue Dec 14 02:26:53 EST 2004
Ian Bicking wrote:
> Jon Perez wrote:
>
>> Michael McGarry wrote:
>>
>>> I intend to use a scripting language for GUI development and front
>>> end code for my simulations in C. I want a language that can support
>>> SQL, Sockets, File I/O, and shell interaction.
>>
>>
>>
>> In my experience, Python is definitely much more suitable than Perl
>> for the first four areas mentioned in the last sentence. For the
>> last area, I'm not sure, but Python's capabilities in this area are
>> also quite good.
>
>
> Shell interaction (or rather, external process interaction) is a lot
> better with Python 2.4's subprocess module. Better or worse than Perl?
> I'm not sure; generally I'd guess better, as it avoids the shell with
> all the shell's issues, and provides a more controlled programmatic way
> of interacting with subprocesses. OTOH, Perl might have perfectly good
> modules for doing the same thing. I can only say it's been missing for
> a while in Python, and it's good to see this done right.
>
Yow, I must not get picked up in Google enough. ;-) The "proctools"
module in the pyNMS package <http://sourceforge.net/projects/pynms/> has
been around for years. I use it all the time for shell-like stuff. There
is also an "expect" module, and the "termtools" module. If you need a
more complete process spawning and controlling framework then use pyNMS.
It can "juggle" multiple processes, reaps child status (no
zombies), operates asynchronously (The ProcManager object is a SIGCHLD
handler), and works with pty's and pipes. It also offers a "thread-like"
interface for Python subprocesses (uses fork). Can leave some fd's open
that you specify, can run the subprocess as a different user, and more...
Check it out.
--
\/ \/
(O O)
-- --------------------oOOo~(_)~oOOo----------------------------------------
Keith Dart <kdart at kdart.com>
public key: ID: F3D288E4
============================================================================
More information about the Python-list
mailing list