Capturing stdout from a class method

F

Falcolas

I have a rather strange situation, and I'm not sure my brief
experience of Python will let me handle it properly.

The situation is this: I have a Java class "X" which I need to call in
a Jython script. The output of "X" is sent to stdout using the java
call System.out. I need to capture this output, and preform tests on
it in the Jython script.

My first pass at a design involves two jython scripts. One (we'll call
it "Y") whose sole function is to instantiate and call "X", and die.
The second script will call "Y" using a method which captures stdout
to a pipe. The second script would then read the stdout from the pipe
and act accordingly.

Can anybody suggest a better way to handle this? The Java class, "X",
can not be modified for this test.
 
T

Thomas Jollans

Falcolas said:
I have a rather strange situation, and I'm not sure my brief
experience of Python will let me handle it properly.

The situation is this: I have a Java class "X" which I need to call in
a Jython script. The output of "X" is sent to stdout using the java
call System.out. I need to capture this output, and preform tests on
it in the Jython script.

My first pass at a design involves two jython scripts. One (we'll call
it "Y") whose sole function is to instantiate and call "X", and die.
The second script will call "Y" using a method which captures stdout
to a pipe. The second script would then read the stdout from the pipe
and act accordingly.

Can anybody suggest a better way to handle this? The Java class, "X",
can not be modified for this test.

How about subprocess.Popen ? I'm thinking of something like this:

import subprocess

X_proc = subprocess.Popen(['java', 'Xstarter'])
for line in Xproc.stdout:
# do funky stuff
pass




-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGgr8lJpinDvQhQ0sRAjyMAJwJyAxe8odd8z7rDSt2T60G0j1ELwCeKCL6
LstzYFWFalmBPrTKfUB6nFI=
=/N6M
-----END PGP SIGNATURE-----
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,734
Messages
2,569,441
Members
44,832
Latest member
GlennSmall

Latest Threads

Top