By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,199 Members | 1,742 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,199 IT Pros & Developers. It's quick & easy.

Control an external console program

P: n/a
Hi,

I know Python since about 3 days or so and I like it very much :-) I am
currently tying to control an external console driven program but I
have encountered some problems while trying to do so.

Suppose I will try to control a program like a ftp command line client.
At first I wrote something like:

import popen2

fin, fout = popen2.popen2("ftp")
print "Out: " + fin.readline()

I expected to get an output like "Out: ftp>" but I got not nothing. I
think the reason is that readline() reads a line till it encountered a
"\n" or EOF, but nothing of both happen because the ftp client just
wrote the prompt and is now waiting for input, or not? Therefore I
thought, ok I just write an "\n" to fout and because the ftp client
will echo it I can read a line with readline() and get the prompt. But
it doesn't work either. Now I started asking myself if it just work
this way at all. Instead of just writing a "\n" to fout I wrote
"help\n" and read a line from fin and this time I got the first line of
the output from the help command *yeeha* :-) Unfortunately any
successive read from fin does not work. I can only read the first line
the help command issued, not the 5 or 6 following the first line.

So my question is how do I control a command line tool? I want to
interactively control a command line tool, so I will issue some
commands need the output from the tool and act acording to it. I guess
readline() is not the answer because if there is no line to read
present it just waits. Can anyone give me some hints for writing such a
program? How is the python command line tool integrated in the many
IDE's around? I guess they have the same problem, or not?

Bye
Alex

Jul 18 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Alexander Stante <al*********@yahoo.de> wrote:
So my question is how do I control a command line tool? I want to


Check out http://pexpect.sourceforge.net/

martin
Jul 18 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.