does os.popen() search the path?
Georg Mischler
schorsch at schorsch.com
Mon Oct 16 09:29:09 EDT 2000
jschmitt at vmlabs.com wrote:
>
> Mark Hammond wrote:
> > jschmitt at vmlabs.com> wrote:
> >
> > > I can get it to print the PATH environment variable and it
> > > tells me that things like 'grep' are in my path. Yet,
> > >
> > > cmd = os.popen( 'grep' )
> > >
> > > never launches.
> >
> > Never launches, or launches and quickly terminates? "grep" with
> > no options will attempt to read from stdin, but no stdin it setup,
> > so it will exit immediately.
>
> Never seems to launch. Below is my script. If I run this, I get the
> same results as when I type 'dir' at the console. If I change to
> 'dir' to 'grep', nothing gets printed at all, not even the message
> that popen failed. When I type 'grep' on the console, I get a terse
> help message.
This help message is printed on stderr, while popen only gives
you stdout. A call to grep with no input will indeed just exit
without writing anything to stdout. The behaviour you see is
therefore exactly what you should expect: "working as designed".
If there was a "real" failure, then you'd get an exception.
The visible effects may actually be different when you try
the same thing inside a unix shell. This is because the unix
process model inherits all standard streams to child processes,
while Windows typically doesn't. As a consequence, the help
message still gets printed to the "current terminal" on unix,
while it is just lost on Windows.
Have fun!
-schorsch
--
Georg Mischler -- simulations developer -- schorsch at schorsch.com
+schorsch.com+ -- lighting design tools -- http://www.schorsch.com/
Sent via Deja.com http://www.deja.com/
Before you buy.
More information about the Python-list
mailing list