为了账号安全,请及时绑定邮箱和手机立即绑定

python 如何重定向到另一个终端?

python 如何重定向到另一个终端?

墨色风雨 2019-05-23 20:07:56
我觉得没人会就开两个python终端:终端1,终端2在终端1:print('sendinfo',file=???)终端2显示:sendinfofile默认为sys.stdout,怎么重定向到另一个终端的sys.stdout?其实我想绕个远路,用tcp连接两个终端的,但是懒得写啊,就来问问各位大佬有没有什么简单的办法实现?如果能实现重定向标准输入sys.stdin就更好了
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

并不是没人会,不要轻易断言。一、你可以试下linux的管道,pipe,这是专门用来linux进程间通信的。其实你也完全可以自己写一个文件进行读写,效果一样。terminal1.py
importos,time,sys
pipe_name='pipe_test'
defparent():
pipein=open(pipe_name,'r')
whileTrue:
line=pipein.readline()[:-1]
print'Parent%dgot"%s"at%s'%(os.getpid(),line,time.time())
ifnotos.path.exists(pipe_name):
os.mkfifo(pipe_name)
parent()
terminal2.py
importos,time,sys
pipe_name='pipe_test'
defchild():
pipeout=os.open(pipe_name,os.O_WRONLY)
counter=0
whileTrue:
time.sleep(1)
os.write(pipeout,'Number%03d\n'%counter)
counter=(counter+1)%5
ifnotos.path.exists(pipe_name):
os.mkfifo(pipe_name)
child()
二、socket通信也行,windows和linux通用。代码不复杂吧,网上都是现成的客户端,服务端。三、试想一下,如果你是linux系统开发的人员,对于定向另一个终端这种简单的问题,他会搞不定?所以你说的没人会有点武断。
                            
查看完整回答
反对 回复 2019-05-23
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

在linux系统下:每一个进程都会有它自己的sys.stdout,除非进程自己把它关闭了。在/proc目录下面系统会为每一个进程创建一个文件夹,文件夹名字就是进程号,该文件夹下面会放一些进程的相关信息,比如fd目录下面会放进程打开的文件描述符,对文件描述符1写入数据就可以了。
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 504 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信