python读取输入流_python – 将一个正在运行的程序的输出流传输到其他正在运行的程序的输入流...

我有两个并行运行的程序.

我想将一个程序的输出流重定向到其他程序的输入流.

我试过管道,但似乎第一个程序的输出仅在第一个程序终止时被重定向到第二个程序的输入.

但是,我的要求并非如此.

例如,第一个程序是print.c,如下所示:

int main(){

int t=1;

while(t!=0){

printf("%d",t);

scanf("%d",&t);

}

}

第二个程序是inputP.py,如下:

#!/usr/bin/python

t=1

while t!=0:

f = open('outP.txt','a')

t = int(raw_input())

f.write(str(t))

f.close()

我的要求是第二个程序应该在打印一个数字时读取第一个程序的输出,并且两个程序都不会终止.

我怎样才能实现这一目标?

最佳答案 这是因为UNIX在检测到它是管道时缓冲了stdin.真正发生的是第一个程序的输出存储在一个缓冲区中,直到它达到一定的大小或直到程序终止(以先发生者为准 – 它是一个非常大的缓冲区,所以你先达到第二个条件),一旦缓冲区被视为已满,它将作为输入发送到第二个程序.

所以看起来你希望你的第二个(Python)程序的输入只是行缓冲(如果你以交互方式运行程序,它的stdin是tty而不是管道就会发生).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值