动态更改raw_input的消息

时间:2018-04-28 00:06:46

标签: python python-2.7 raspberry-pi raspberry-pi3

我正在寻找使用Raspberry Pi移动电动滑块。但是,在调试系统时,我想知道是否可以使用:

target = int(raw_input(<message>))

消息可以在用户输入值之前动态更改。对我来说,很高兴看到从这个<message>中的滑块读取的当前值。

如果无法做到这一点,是否可以在系统等待用户输入的情况下在raw_input上方或下方打印一条仍然在变化的线?

1 个答案:

答案 0 :(得分:0)

您可以将其视为非阻塞输入。

Here is a solution from stack overflow,它使用线程

我做了一点修改后的解决方案,它仍然需要一些调整,但它或多或少都是你需要做的。

python
import threading
import time
import random

userInput = ""
finished = False
sensorValue = 100
previousValue = 0

def Listener():
    global userInput, finished, sensorValue
    userInput = raw_input(sensorValue)
    if len(userInput) > 0:
        print(len(userInput))
        finished = True
    else:
        finished = False

while True:
    if sensorValue != previousValue:
        print("Received new slider info. SliderValue is {}".format(sensorValue))
        previousValue = sensorValue
    else:
        print("No new info from slider. Sleeping two seconds.")
    if not finished:
        listener = threading.Thread(target=Listener)
        listener.start()
    else:
        break
    if random.randint(0,1) == 1:
        sensorValue += 10 
    time.sleep(2) 

看看是否能回答你的问题! :)