Получение программы для зацикливания в терминале после закрытия внешней программы в python - PullRequest
0 голосов
/ 13 октября 2019

Я написал программу, которая просит пользователей открывать внешнее приложение в зависимости от того, что они вводят, и работает отлично.

Я запускаю эту программу через терминал Mac через эту команду оболочки в моем .zshrc:

python /Users/<host_name>/Documents/sublime/python/modules/programs.py

Когда моя программа запускается, пользователь открыл приложение, а затем закрыл приложение, программа все еще работает, даже если приложение закрыто.

Я знаю, что subprocess.call говорит программе заблокировать, пока приложение не закроется, а затем снова выполнить цикл, но терминал все еще считает, что программа все еще работает.

Я почти уверен, что яя пропускаю шаг, поэтому любая помощь будет прекрасна!

Вот фрагмент кода, который выполняется:

while True:
    print ('What do you want to open?')

    prompt = raw_input('> ')


    if prompt == 'safari':
        print('Opening Safari...')
        subprocess.call(
        ["/usr/bin/open", "-W", "-n", "-a", "/Applications/Safari.app"]
        )
    else:
        print ('No Applications have been selected!')

Вот как будет выглядеть вывод в терминале, как только я 'мы закрыли приложение и ожидаем, что оно снова зациклит мое приглашение:

What do you want to open?
> safari
Opening Safari...

Вот что я ожидаю увидеть:

What do you want to open?
> 

Итак, пытаюсь заставить код или терминал распознаватьто, что блок subprocess.call закончился, оказывается хитрым.

Примечание: извините за любые ошибки в терминологии, все еще плохо знакомые с python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...