【发布时间】:2015-05-04 21:32:22
【问题描述】:
我想使用 Python 在 Mac OS 中打开 TextEdit 或 Firefox 等应用程序,然后等待应用程序退出。我无法确定打开应用程序并等待的确切命令。
【问题讨论】:
-
我改进了你的格式。请编辑您尝试执行的操作。
标签: python macos applescript
我想使用 Python 在 Mac OS 中打开 TextEdit 或 Firefox 等应用程序,然后等待应用程序退出。我无法确定打开应用程序并等待的确切命令。
【问题讨论】:
标签: python macos applescript
我不知道如何在 applescript 中执行此操作,但您可以使用 /usr/bin/open UNIX 级 OS X 命令执行此操作。这个 sn-p 会打开 TextEdit.app 并阻塞,等待它退出再继续:
import subprocess
subprocess.call(
["/usr/bin/open", "-W", "-n", "-a", "/Applications/TextEdit.app"]
)
查看打开的手册页 (man open) 和 python subprocess module 文档了解更多详细信息。
【讨论】:
-W 开关告诉 open 等待程序退出。它在我的测试用例中有效;当我退出 TextEdit 时,子进程停止阻塞。
你可以像这个例子一样打开任何应用程序
import os
os.system("open /Applications/Google\ Chrome.app")
os.system("open /Applications/Todoist.app")
os.system("open /Applications/WhatsApp.app")
【讨论】:
Dictionary.app 或 FaceTime.app
os.system("open /System/Applications/FaceTime.app")
AppleScript:
tell app "Whatever you want" to open
从 Python 调用
import os
os.system("""osascript -e 'tell app "Safari" to open'""")
【讨论】:
这适用于 Mac OS 11.1:
import os
os.system("open -a TextEdit")
print("Done and not blocking")
【讨论】:
import os 和os.system(..) 的答案,所以我看不出这是如何增加任何价值作为新答案的。此外,这实际上并没有回答 OP 中的问题!。
您可以在 python 中使用此关闭 osx 上的任何应用程序(如 Chrome 或 Safari):
import os
os.system("pkill Chrome")
【讨论】: