In article <9d0f6456-97c7-4bde-8e07-9576b02f9...@t31g2000prh.googlegroups.com>,
chad  <cdal...@gmail.com> wrote:
>
>import subprocess as s
>
>broadcast = s.Popen("echo test | wall", shell=True,stdout=s.PIPE)
>
>out = broadcast.stdout
>while 1:
>    out
>    broadcast.wait()
>
>broadcast.stdout.close()
>
>
>The code only executes once. What I want to do is be able to
>continuously write over the pipe once it is open. I could put
>s.Popen() inside the while loop, but that seems a bit too messy. So is
>there some way to just open the pipe once, and once it is open, just
>continuously write over it vs just opening and closing the pipe every
>time?

You really should do this instead, untested:

broadcast = s.Popen(['wall'], stdin=s.PIPE)
while 1:
    broadcast.write('test\n')
    time.sleep(1)
-- 
Aahz (a...@pythoncraft.com)           <*>         http://www.pythoncraft.com/

"Many customs in this life persist because they ease friction and promote
productivity as a result of universal agreement, and whether they are
precisely the optimal choices is much less important." --Henry Spencer
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to