how i can open different linux terminal to output

2019-04-01 00:13发布

I need output different information to different terminal instances 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

2条回答
Juvenile、少年°
2楼-- · 2019-04-01 00:23

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!")
查看更多
老娘就宠你
3楼-- · 2019-04-01 00:35

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.

查看更多
登录 后发表回答