How would I do a continuous write over a pipe in the following code...
Aahz
aahz at pythoncraft.com
Thu Feb 25 19:51:01 EST 2010
In article <9d0f6456-97c7-4bde-8e07-9576b02f91f9 at t31g2000prh.googlegroups.com>,
chad <cdalten at 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 (aahz at 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
More information about the Python-list
mailing list