接收来自python spawn子进程的连续输出不工作

2024-06-16 14:39:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从一个用python编写的称重秤输出流。这个节目(缩放.py)连续运行,每半秒打印一次原始值。在

import RPi.GPIO as GPIO
import time
import sys

from hx711 import HX711

def cleanAndExit():
    print "Cleaning..."
    GPIO.cleanup()
    print "Bye!"
    sys.exit()

hx = HX711(5, 6)

hx.set_reading_format("LSB", "MSB")

hx.reset()
hx.tare()

while True:
    try:
        val = hx.get_weight(5)
        print val

        hx.power_down()
        hx.power_up()
        time.sleep(0.5)
    except (keyboardInterrupt, SystemExit):
        cleanAndExit()

我试图在一个单独的ejb程序中获取每个点的原始数据(索引.js位于同一文件夹中),由print val打印。这是我的节点程序。在

^{pr2}$

当我运行sudo node index.js时,没有输出,程序会一直等待。在

我的思想过程是print val应该将输出放入stdout流中,这应该在node程序中触发data事件。但什么也没发生。在

谢谢你的帮助!在


Tags: pyimport程序nodegpiotimesysjs
1条回答
网友
1楼 · 发布于 2024-06-16 14:39:16

默认情况下,所有使用libc的C程序(CPython是用C编写的)在连接到管道时都会自动缓冲控制台输出。在

一种解决方案是在每次需要时刷新输出缓冲区:

print val
sys.stdout.flush()

另一种解决方案是使用-u标志调用python,这将强制它取消缓冲:

^{pr2}$

相关问题 更多 >