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

Python C程序子进程挂在“ITER中的行”

Python C程序子进程挂在“ITER中的行”

白猪掌柜的 2019-06-25 15:30:36
Python C程序子进程挂在“ITER中的行”好的,我正在尝试从python脚本中运行一个C程序。目前,我正在使用一个测试C程序:#include <stdio.h>int main() {while (1) {     printf("2000\n");     sleep(1);}return 0;}来模拟我将要使用的程序,它不断地从传感器获取读数。然后我尝试读取输出(在本例中)"2000")来自于在python中具有子进程的C程序:#!usr/bin/pythonimport subprocess process = subprocess.Popen("./main", stdout=subprocess.PIPE)while True:     for line in iter(process.stdout.readline, ''):             print line,但这行不通。通过使用print语句,它运行.Popen排队等候for line in iter(process.stdout.readline, ''):直到我按下Ctrl-C。这是为什么?这正是我所见过的大多数示例作为它们的代码,但它并不读取该文件。编辑:是否有办法使它只有在有东西可读的时候才能运行呢?
查看完整描述

3 回答

?
绝地无双

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

看见读行文档.

你的代码:

process.stdout.readline

在等EOF或者换行。

我不知道您最终想做什么,但是在printf中添加一个换行符,例如,printf("2000\n");至少应该让你开始。


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 418 浏览
慕课专栏
更多

添加回答

举报

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