Я использую 2 отдельных сценария, Scale1.py
и Scale2.py
. Для их запуска я ввожу sudo python Scale1.py
или sudo python Scale2.py
из командной строки терминала. Я хотел бы иметь строку в Scale2.py
сценарии, в которой, если я нажимаю кнопку, программа прерывается и запускается Scale1.py
. Как то так, что не работает.
if GPIO.input(23) == False:
break(sudo python Scale1.py)
os.system()
было исключено в пользуsubprocess
, см. stackoverflow.com/a/4256153/4212158В общем, используйте модуль подпроцесса
для вызовов командной строки.
Пример обработки результата вызова подпроцесса;
Подпроцесс заменяет несколько старых модулей и функций, таких как os.system и os.spawn . Он хорошо справляется с дезинфекцией аргументов и защищает вас от попадания в оболочку .
https://docs.python.org/2/library/subprocess.html
Конечно, для запуска второго скрипта Python нет необходимости в вызове CLI, вы можете импортировать его.
источник
subprocess
может ли быть лучше и в моем случае?Вы можете использовать sudo, как предложил Гарри Сиб, но вам нужно будет добавить пользователя, запускающего первый скрипт, в файл sudoers .
Лучший способ запустить скрипт Python из другого скрипта Python - это импортировать его. Вы должны иметь логику вашего скрипта в методе во втором скрипте:
источник
cleanest
ответом.