Capturing stdout from a class method
thomas at jollans.com
Wed Jun 27 21:48:53 CEST 2007
> 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:
X_proc = subprocess.Popen(['java', 'Xstarter'])
for line in Xproc.stdout:
# do funky stuff
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 260 bytes
Desc: OpenPGP digital signature
More information about the Python-list