无限运行Python脚本

问题描述 投票:0回答:2

我尝试了在Internet上找到的所有内容,但没有按我希望的方式工作。我一起破解了这个Python脚本,它确实很好用。

例外:

它不能无限地工作。我必须将time.sleep()设置为一个高数字,否则脚本将退出。但是在脚本运行时它可以工作。如何让脚本无限运行? :)

这里是完整的脚本:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import time

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.cleanup()

import logging
logging.basicConfig(level=logging.INFO)


sys.path.append('../')
from obswebsocket import obsws, events

host = "blabla"
port = 4444
password = "BLABLA"

#
# Scene Config
#

scene1 = "HDMI1"
scene2 = "HDMI2"
scene3 = "HDMI3"
scene4 = "HDMI4"
scene5 = "Desktop+HDMI1"
scene6 = "Desktop+HDMI2"
scene7 = "Desktop+HDMI3"
scene8 = "Desktop+HDMI4"

#
# Configure Tallys
#

GPIO.setup(18, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)

def on_switch(message):
    obsscene = message.getSceneName()
    if obsscene == scene1:
       print ("Kamera 1 aktiv")
       GPIO.output(18, GPIO.HIGH)
       GPIO.output(23, GPIO.LOW)
       GPIO.output(24, GPIO.LOW)
       GPIO.output(25, GPIO.LOW)
    elif obsscene == scene2:
      print ("Kamera 2 aktiv")
      GPIO.output(18, GPIO.LOW)
      GPIO.output(23, GPIO.HIGH)
      GPIO.output(24, GPIO.LOW)
      GPIO.output(25, GPIO.LOW)
    elif obsscene == scene3:
     print ("Kamera 3 aktiv")
     GPIO.output(18, GPIO.LOW)
     GPIO.output(23, GPIO.LOW)
     GPIO.output(24, GPIO.HIGH)
     GPIO.output(25, GPIO.LOW)
    elif obsscene == scene4:
     print ("Kamera 4 aktiv")
     GPIO.output(18, GPIO.LOW)
     GPIO.output(23, GPIO.LOW)
     GPIO.output(24, GPIO.LOW)
     GPIO.output(25, GPIO.HIGH)
    else:
     print ("Szene ohne Tally:")
     print (obsscene)
     GPIO.output(18, GPIO.LOW)
     GPIO.output(23, GPIO.LOW)
     GPIO.output(24, GPIO.LOW)
     GPIO.output(25, GPIO.LOW)

ws = obsws(host, port, password)
ws.register(on_switch, events.SwitchScenes)
ws.connect()

try:
    print("OK")
    time.sleep(999999999999999999999999)
    print("END")

except KeyboardInterrupt:
    pass
python pause
2个回答
1
投票

请尝试在底部试试

try:
    While True:

except KeyboardInterrupt:
    pass

0
投票

这样就解决了问题:

try:
   while True:
    pass

except KeyboardInterrupt:
    pass
© www.soinside.com 2019 - 2024. All rights reserved.