выход из цикла из другого скрипта Python

0

Я новичок в python и нуждаюсь в некоторой помощи в завершении проекта, пожалуйста, позвольте мне сказать, что это не школьная работа. У меня есть цикл for, который управляет выводами gpio на малине pi, имя этого файла - "ledtest.py", этот сценарий выполняется с помощью команды "exec" в php, когда я нажимаю кнопку на странице, которую она выполняет, ledtest.py ", все, что хорошо работает, мой заголовок загорается и выполняет то, о чем говорит программа, моя проблема; Я хотел бы иногда останавливать цикл, если он работает слишком долго, я хотел бы поставить команду, чтобы остановить цикл в новом файле python и выполнить его с php, когда я нажимаю вторую кнопку, я слышал о команде break но не знаю, как реализовать его, любая помощь будет оценена.

  • 0
    Вы не можете контролировать один скрипт из другого скрипта. Второй сценарий должен будет что-то сделать, например, изменить файл, а первый сценарий должен будет проверять этот файл каждый раз, когда он проходит свой цикл. Затем, если файл содержит команду остановки, он может использовать break для выхода из цикла.
  • 3
    добавление вашего кода будет большой помощью
Показать ещё 1 комментарий
Теги:

1 ответ

3
Лучший ответ
while not os.path.exists("/home/pi/stop_LEDS"):
     do_blink_led()

os.remove("/home/pi/stop_LEDS")

то в php просто создайте этот файл... когда вы хотите, чтобы он остановился

вы можете сделать это с помощью <?php exec('touch/home/pi/stop_LEDS');?>

попробуй это

index.php

<?php
    if isset($_POST["stop"]){
       // create the file that will exit the ledtest loop
       exec('touch /home/pi/stop_LEDS');
       echo '<form method="POST"><input type="submit" name="start" value="start" /></form>';
    }else if isset($_POST["start"]){
       // start ledtest
       exec("ledtest.py");
       echo '<form method="POST"><input type="submit" name="stop" value="stop" /></form>';
    }else{
        echo '<form method="POST"><input type="submit" name="start" value="start" /></form>';
    }
?>

ledtest.py

 while not os.path.exists("/home/pi/stop_LEDS"):
     do_blink_led() # this is your method that you wrote that blinks the led

 os.remove("/home/pi/stop_LEDS")
  • 1
    интересная идея! +1, какой-то вызов подпроцесса также может работать.
  • 0
    кроме того, что он сказал, что вызывает скрипт из php ... так что это может быть сложно ... я подумал, что это будет самый простой подход
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню