Simulate `bash` behaviour using Python and named pipes.

Luca Cerone luca.cerone at gmail.com
Mon Aug 5 09:51:36 EDT 2013


Hi Paul, first of all thanks for the help.

I am aware of the first solutions, just now I would like to experiment a bit with  using named pipes (I also know that the example is trivial, but it just to grasp the main concepts)

> 
> You can also pass a file object to p1's stdout and p2's stdin if you want to >pipe via a file.
 
> 
> with open("named_pipe", "rw") as named_pipe:
>     p1 = subprocess.Popen(["ls", "-lah"], stdout=named_pipe)
>     p2 = subprocess.Popen(["cat"], stdin=named_pipe)
> 
>     p1.wait()
>     p2.wait()
>  

Your second example doesn't work for me.. if named_file is not a file in the folder I get an error saying that there is not such a file.

If I create named_pipe as a named pipe using os.mkfifo("named_file",0777) than the code hangs.. I think it is because there is not process that reads the
content of the pipe, so the system waits for the pipe to be emptied.

Thanks a lot in advance for the help in any case.
Luca



More information about the Python-list mailing list