IPC

Yannick Turgeon nobody at nowhere.com
Tue Jul 27 19:19:36 CEST 2004


Hi,

I'm relatively new to Python. I'm using 2.3.4 on W2K.

What I want to do is to start a program and interact with it. Say my program
is FTP, I want to start FTP then send the commande "open x.x.x.x" then look
for the answer (if the connection is opened or not), then do something
dependant of the success or error.

I tried with popen3. The problem I got with this: it seems that I have to
end the program before being able to read the output. Or maybe I'm not using
it correctly. I do test the communication with FTP exec. but it will be a
custom program in real. Here is my code:


    def test(self):
        cmd = "ftp"
        r, w, e = popen2.popen3(cmd)

        cmd = "?\n"            # A simple FTP commande
        w.write(cmd)
        w.flush()

        # That is what I would like but it's hanging here. I have to remove
this group and read at the end.
        for line in e.readlines():
            # Do something conditionnal to the result of "line"
            pass
        for line in r.readlines():
            # Do something conditionnal to the result of "line"
            pass


        cmd = "quit\n"
        w.write(cmd)
        w.flush()

        for line in e.readlines():
            print line
        for line in r.readlines():
            print line

        w.close()
        r.close()
        e.close()
----------------------

Anybody can help? Thanks for your time.

Yannick





More information about the Python-list mailing list