我正在使用一个允许您选择一个流程的自动化系统,但是我想连续ping该流程以进行状态更新,但允许用户更改流程中的其他活动。如果我同时运行两个py文件,则此方法有效,但对复杂情况而言效果不佳。
简单来说:我希望能够在控制不同事物之间进行切换,但仍然具有实时信息。我似乎无法弄清楚如何在一个简单的python文件中甚至在运行同一应用程序的多个python文件中做到这一点。
示例:
import time
def setHVACTemp():
'''does stuff'''
def setHVACStatus():
'''does stuff'''
def fetchTemp():
print("72")
def fetchHum():
print("65%")
def fetchFan():
print("On")
def currentTemp():
while True:
time.sleep(1)
fetchTemp()
def currentHum():
while True:
time.sleep(1)
fetchHum()
def currentFan():
while True:
time.sleep(1)
fetchFan()
def menu():
print("1. HVAC")
print("2. TV")
print("3. Other stuff")
opt = input("Select your option: ")
if opt == "1":
print("a. Set Temp " + currentTemp() + " " + currentHum() + " " + currentFan)
print("b. Set Home/Away")
opt2 = input("Select HVAC Option: ")
if opt2 == "a":
setHVACTemp()
if opt2 == "b":
setHVACStatus()
menu()
如何使此菜单更新温度/湿度/风扇寿命(每隔x秒左右),但仍允许该人为电视或真空度选择2或3?它只是卡在while循环中。
这样做:
1. HVAC
2. TV
3. Other stuff
Select your option 1
72
72
72
72
72
72
Process finished with exit code -1
我想要它做
1. HVAC
2. TV
3. Other stuff
Select your option 1
a. Set Temp (75 65% On)
b. Set Home/Away (Home)
Select HVAC option:
我是Py的初学者(通常是编码人员),因此非常感谢您的帮助。
答案 0 :(得分:1)
我的例子很差,但是我确实找到了一个可以用的简单得多的例子。
这产生了“做其他事情”,而蜂鸣声不断地响起。
import threading
import winsound
def worker():
"""thread worker function"""
while True:
winsound.MessageBeep(1)
'''Just as a test I put a beeping noise in here'''
threads = []
def test():
for i in range(1):
t = threading.Thread(target=worker)
threads.append(t)
t.start()
print("do other stuff")
test()