好的,所以我有这个非常简单的python脚本:
import time
import sys
for i in range(25):
time.sleep(1)
print(i)
sys.exit()
当我使用python运行它(/usr/local/bin/python3.6 testscript.py
)时,一切正常,输出显示:
1
2
3
4
etc..
每个数字后打印1秒。
但是当我跑步时:
/usr/bin/osascript -e 'do shell script "/usr/local/bin/python3.6 testscript.py" with prompt "Sart Testing " with administrator privileges'
25秒内没有任何输出,最后打印出来:
24
到终端。
问题是:如何让osascript打印出与我直接运行Python脚本完全相同的输出?
答案 0 :(得分:1)
AppleScript的 do shell script
命令在非交互式shell中运行,因此您无法执行osascript
命令就像你拥有它一样,并希望它输出与通过python
运行python
脚本相同或直接运行。换句话说,直接添加python
shebang 并使文件可执行,因此{strong>终端中的./testscript.py
就是您所需要的。或者使用终端及其do script
命令与osascript
一起使用。
将python
代码保存为。 e.g:
#!/usr/local/bin/python3.6
import time
import sys
for i in range(25):
time.sleep(1)
print(i)
sys.exit()
使其可执行:
chmod u+x testscript.py
在终端中运行:
./testscript.py
或者:
osascript -e 'tell app "Terminal" to do script "/path/to/testscript.py"'
使用终端 {{1 } 命令:
python