簡體   English   中英

從 python shell 初學者問題中檢索值

[英]retrieve value from python shell beginner question

我可以使用庫中的這個python 文件通過 BA.net 協議從終端運行以下命令來發出溫度傳感器值的讀取請求:

echo 'read 12345:2 analogInput:2 presentValue' | py -3.9 ReadProperty.py

我可以在控制台中看到67.02999114990234的值按預期返回。

如果這個問題看起來很愚蠢並且是入門級的,我深表歉意,但我可以調用這個腳本並為傳感器讀數分配一個值嗎? 非常感謝任何提示。

例如,如果我運行這個:

import subprocess
read = "echo 'read 12345:2 analogInput:2 presentValue' | python ReadProperty.py"

sensor_reading = subprocess.check_output(read, shell=True)

print("sensor reading is: ",sensor_reading)

它只會打印0但希望找到一種方法來打印67.02999114990234的傳感器讀數。 我認為幕后發生的事情是 BA.net 庫帶來了某種使用 std in/out/flush 的 shell 腳本。

os.system不會從 stdout 返回 output,而是返回已執行程序/代碼的退出代碼。

有關詳細信息,請參閱文檔

在 Unix 上,返回值是以 wait() 指定格式編碼的進程退出狀態。 在Windows上,返回值為shell運行命令后系統返回的值。

要將 output 從 stdout 獲取到您的程序中,您必須使用subsystem模塊。 外面有很多關於如何使用subsystem的教程,但這是一種簡單的方法:

import subprocess

read = "echo 'read 12345:2 analogInput:2 presentValue' | py -3.9 ReadProperty.py"
sensor_reading = subprocess.check_output(read, shell=True)
print(sensor_reading)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM