Я написал программу, которая просит пользователей открывать внешнее приложение в зависимости от того, что они вводят, и работает отлично.
Я запускаю эту программу через терминал 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.