Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Umí někdo programovat v Pythonu?

Ahoj, jsem zatím začátečník a vyrobil jsem si z Raspberry Pi videochůvičku... Otevírám z masterscriptu druhý skript a potřebuju, aby ten první (master) počkal, až ten volaný doběhne... Napadlo mě využít třídu Popen a udělal jsem to takto (inkriminované místo tučně a kurzívou):

#!/usr/bin/python
import RPi.GPIO as GPIO   
import time  
import os.path
import subprocess
from gpiozero import MotionSensor
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)    
GPIO.setup(4, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(17, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)

pir = MotionSensor(4)
zapnuto = GPIO.input(17)
pohyb = GPIO.input(4)

while zapnuto == False:
        pohyb = GPIO.input(4)
        if pohyb == True:
                print("Pohyb_bezAlertu")
                time.sleep(5)
                if pir.wait_for_motion(timeout=10):
                        print("Alert")
                        [b][i]import subprocess
                        process = subprocess.Popen("/home/pi/Alert+Zvuk.py", shell=True)
                        process.wait()[/i][/b]
                
                else:
                        if os.path.isfile('active') == True:
                                time.sleep(300)
                                os.remove('active')
                                GPIO.output(23, False)
                                GPIO.output(24, False)

Na Python komunitě na face jsem dostal ještě radu na řádek, kde se volá druhý script následovnou:

process = subprocess.Popen("home/po/Alert+Zvuk.py",shell=True,stdin = subprocess.PIPE,stderr = subprocess.PIPE,stdout = subprocess.PIPE)

Ale obě varianty stejný výsledek. Chybu žádnou nehodí, ani syntaxe, ani Traceback, druhý script není spuštěn a smička "while" pokračuje dál, čili zase čeká na pohyb... Už fakt nevím jak na to. Můžu tam samozřejmě prásknout klasický "call" a pak time.sleep(Přibližný_čas_volaného_scriptu), ale to asi nejsou nejlepší programovací návyky...

Díky moc za případnou odpověď.

Pre vkladanie kódu používajte tag 'code' a nie 'quote', aby ste zachovali odsadenie. (moose)

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny