Repost: Read a running process output

Ashok Prabhu ashokprabhuv at gmail.com
Fri Feb 5 08:39:49 EST 2010


On Feb 5, 6:33 pm, Ashok Prabhu <ashokprab... at gmail.com> wrote:
> On Feb 5, 5:58 pm, Alain Ketterlin <al... at dpt-info.u-strasbg.fr>
> wrote:
>
>
>
> > Ashok Prabhu <ashokprab... at gmail.com> writes:
> > >> > p1=Popen('/usr/sunvts/bin/64/vtsk -d',stdout=PIPE,shell=True)
>
> > >> Use Popen(['/usr/...','-d'],stdout=PIPE), i.e., no shell.
>
> > >> -- Alain.
> > > Thanks for the response. However it throws an error. Please find
> > > below.
>
> > >>>> from subprocess import *
> > >>>> p1=Popen('/usr/sunvts/bin/64/vtsk -d',stdout=PIPE)
>
> > You forgot to change the monolithic command into a list of words. Since
> > you don't use the shell anymore you have to give Popen a pre-parsed
> > command line.
>
> > -- Alain.
>
> Here is the error again
>
> >>> p1=Popen('/usr/sunvts/bin/64/vtsk','-d',stdout=PIPE)
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File "/usr/lib/python2.4/subprocess.py", line 494, in __init__
>     raise TypeError("bufsize must be an integer")
> TypeError: bufsize must be an integer
>
> ~Ashok.

Oops i missed the braces. But still no output.


>>> p1=Popen(['/usr/sunvts/bin/64/vtsk','-d'],stdout=PIPE)
>>> while 1:
...  a=p1.stdout.readline()
...  print a
...



More information about the Python-list mailing list