Как завершить или закрыть (выйти) приложение после его открытия? (python)

#python #subprocess

#python #подпроцесс

Вопрос:

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

 music = subprocess.Popen(["/bin/bash", "-c", "open/System/Applications/Music.app"])
 

Комментарии:

1. open сам по себе является программой, которую можно запускать с Popen помощью : Popen(["open", "/System/Applications/Music.app"]) .

Ответ №1:

Я бы использовал AppleScript:

 > subprocess.run(["open", "/System/Applications/Music.app"])
> subprocess.run(["osascript", "-e", 'tell application "Music" to quit'])
 

Обратите внимание, что в отличие от Python, AppleScript требует строк в двойных кавычках.


Музыка выполняется практически независимо от вашего процесса Python; Я не знаю простого способа получить или сохранить объект, представляющий процесс. В обоих случаях мы работаем косвенно.

Сначала мы запускаем open , который просит launchd запустить музыку для нас. open существует немедленно, поэтому нет смысла держать Popen экземпляр, представляющий его, под рукой.

Когда мы закончим с музыкой, мы используем osascript для запуска очень короткий AppleScript, который просто просит музыкальное приложение завершить работу. Например open , osascript завершается немедленно, и Music делает то, что мы просим, а именно exit .