开发者

how i can open different linux terminal to output differnt kinds of debug information in python?

开发者 https://www.devze.com 2023-01-02 01:23 出处:网络
I need output different information to different terminal inst开发者_如何学JAVAances instead of print them in same output stream, say std.err or std.out.

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!")
0

精彩评论

暂无评论...
验证码 换一张
取 消