Mac OSX 10.12下用AppleScript无终端运行当前目录Python2.7脚本
解决方案:合并AppleScript实现无指定路径且无终端运行Python脚本
嘿,作为AppleScript新手能找到两个核心功能的脚本已经很棒了!咱们直接把它们的逻辑整合起来,就能实现你要的效果——不用硬编码完整路径,同时运行Python脚本时不弹出终端窗口。
核心思路拆解
- 从你找到的第一个脚本里,提取动态获取当前AppleScript所在目录的逻辑,这样就能自动定位同目录下的Python脚本
- 把这个动态生成的路径,替换第二个脚本里的硬编码路径,同时保留环境变量设置和后台运行的参数,避免终端窗口弹出
完整的合并脚本
-- 第一步:获取当前AppleScript文件所在的文件夹路径 tell application "Finder" set scriptFolder to folder of (file (path to me)) as text end tell -- 第二步:拼接Python脚本的完整POSIX路径(记得替换成你实际的脚本文件名) set pythonScriptPath to quoted form of (POSIX path of scriptFolder & "pythonfile.py") -- 第三步:后台运行Python脚本,不打开终端,同时设置必要的环境变量 do shell script "export LC_ALL=en_US.UTF-8; export LANG=en_US.UTF-8; /usr/bin/python " & pythonScriptPath & " &> /dev/null &"
关键细节说明
quoted form of:专门处理路径中可能出现的空格或特殊字符,防止shell命令执行报错POSIX path of:把Finder返回的Mac风格路径(比如Macintosh HD:用户:xxx:脚本文件夹:)转换成shell能识别的斜杠式路径(/Users/xxx/脚本文件夹/)&> /dev/null &:将脚本的标准输出和错误输出全部重定向到空设备,同时让进程在后台运行,这就是不弹出终端的核心/usr/bin/python:Mac OSX 10.12系统自带的Python2.7默认路径就是这个,无需修改
测试小提示
- 确保你的AppleScript文件和
pythonfile.py放在同一个文件夹里 - 如果你的Python脚本不是叫
pythonfile.py,记得修改脚本里的对应文件名 - 要是需要停止后台运行的Python脚本,可以打开「活动监视器」,找到对应的Python进程结束它
内容的提问来源于stack exchange,提问作者aceman
相关产品推荐
相关产品推荐

