如何在打开后终止或关闭(退出)应用程序? (python)

How to terminate or close (quit) an app after opening it? (python)

我使用下面的代码打开了一个应用程序,但是如果我想关闭该应用程序呢?

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

我会使用 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 会按照我们的要求执行,即退出。