#python #macos
#python #macos
Вопрос:
Я пытаюсь запускать скрипты для python in MAC OS.
Мне не удалось запустить сценарии, которые выполняются Bash.sh scripts
, у кого-нибудь здесь есть идея о том, как я могу запустить bash.sh
из python в Mac OS.
Спасибо вам за любую помощь :)!
(Это скрипты:
Called: RunScript.sh, and I need to run it from Python Script.)
Ответ №1:
os.system не работает?
import os
os.system("/path/to/script.sh")
Ответ №2:
Предположительно, вы бы использовали модуль подпроцесса.
Вопросы становятся:
- Собираетесь ли вы получать выходные данные из этого скрипта?
- Собираетесь ли вы вводить в него входные данные?
- Нужно ли взаимодействовать с пользователем через терминал (который использует Python)?
- Нужно ли фиксировать и / или обрабатывать сообщения об ошибках или коды ошибок (возвращаемые значения)?
Комментарии:
1. Привет, Джим, извини, что копался в этой (очень) старой теме. Но здесь у меня есть третий вариант использования в вашем списке.
os.system()
Открывается ли терминал, на котором запускается скрипт оболочки / bash?subprocess.Popen()
Открывает ли окно терминала, чтобы показать, что делает скрипт? потому что мой скрипт (shell / bash) содержит некоторыеsudo
команды, и пользователи должны иметь возможность вводить свой пароль при запросе. Любая помощь приветствуется 🙂2. @PSSolanki, открывать терминал из скрипта Python для обработки пароля почти наверняка ужасная идея. sudo предлагает опцию -S ( —stdin ). Итак, вы могли бы использовать модуль Python getpass для запроса и получения пароля, и можете ли вы ввести его в стандартный поток ввода sudo (в отдельной строке) атрибут stdin объекта Popen() (который является объектом, подобным файлу, с использованием подпроцесса. Опция PIPE .)
3. Ценю вклад. Я увидел
-S
флаг в подсказках pycharm. Я попробую это 🙂