Line-by-line processing when stdin is not a tty

Tim Harig usernet at
Wed Aug 11 21:38:13 CEST 2010

On 2010-08-11, RG <rNOSPAMon at> wrote:
> In article <i3uo7t$6mk$1 at>,
>  Tim Harig <usernet at> wrote:
>> On 2010-08-11, RG <rNOSPAMon at> wrote:
>> > I'm writing a system in a different language but want to use a Python 
>> > library.  I know of lots of ways to do this (embed a Python interpreter, 
>> > fire up a python server) but by far the easiest to implement is to have 
>> > the main program spawn a Python interpreter and interact with it through 
>> > its stdin/stdout.
>> Or, open python using a socket.
> You mean a TCP/IP socket?  Or a unix domain socket?  The former has 
> security issues, and the latter seems like a lot of work.  Or is there 
> an easy way to do it that I don't know about?

I was referring to unix domain sockets or more specifically stream
pipes. I guess it depends what language you are using and what libraries
you have access to.  Under C, working with stream pipes is no more trivial
then using pipe().  You can simply create the socket descriptors using
socketpair().  Keep one of the descriptors for your process and pass the
other to the python child process as both stdin and stdout.

More information about the Python-list mailing list