I need output different information to different terminal inst开发者_如何学JAVAances instead of print them in same output stream, say std.err or std.out.
for example: I have 5 kinds of information say A-E need to be displayed on different terminal windows on same desktop, looks like
[terminal 1] <- for displaying information A
[terminal 2] <- for displaying information B
[terminal 3] <- for displaying information C
[terminal 4] <- for displaying information D
[terminal 5] <- for displaying information E
I know I can output them into different files, then open terminals read the file in loop, but what I want is python program can open terminal by program itself and print to them directly when it is needed.
Is it possible?
Thanks!
KC
[edit] the best solution for this case is using SOCKET as the IPC I think if the resource is not a matter, it will come with best compatible capability - a server client mode. and the pipe / subprocess will also be the useful solutions under same platform
Open a pipe, then fork off a terminal running cat
reading from the read end of the pipe, and write into the write end of the pipe.
Using the subprocess module, just run several instances of whichever terminal program you like, each running "cat", using subprocess.Popen. Pass stdin=subprocess.PIPE in addition to the terminal command to Popen. Then you can just write to each terminal's stdin attribute.
Something along the lines of (untested!):
import subprocess
p = subprocess.Popen('xterm -e "cat > /dev/null"', stdin=subprocess.PIPE)
p.stdin.write("Hello World!")
精彩评论