6
A
回答
11
this nice article暗示簡單的解決方案
cmd = """osascript -e 'tell app "Finder" to sleep'"""
def stupidtrick():
os.system(cmd)
雖然今天你使用subprocess
模塊,而不是os.system
,當然。
5
A subprocess
版本允許原樣運行原始Apple腳本,而不必轉義引號和其他字符,這可能會非常棘手。它是腳本的簡化版本,發現here也可以參數化和正確轉義(Python 2.x)。
import subprocess
script = '''tell application "System Events"
activate
display dialog "Hello Cocoa!" with title "Sample Cocoa Dialog" default button 2
end tell
'''
proc = subprocess.Popen(['osascript', '-'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
stdout_output = proc.communicate(script)[0]
print stdout_output
注:如果您需要使用相同的POPEN實例執行多個腳本,那麼你就需要使用
proc.stdin.write(script)
明確寫入與讀取proc.stdout.read()
因爲communicate()
將關閉輸入和輸出流。
+1
在python 3中這是行不通的,需要在popen上增加一個參數universal_newlines = True。請參閱https://stackoverflow.com/a/45133926/1534775 – gbonetti 2017-07-16 22:48:35
0
我得到的輸出鄉親......在這裏它的下面:
import subprocess
import sys
for i in range(int(sys.argv[1])):
ip = str(sys.argv[2])
username = str(sys.argv[3])
pwd = str(sys.argv[4])
script = '''tell application "Terminal"
activate
do script with command "cd Desktop && python test_switch.py {ip} {username} {pwd}"
delay 15
end tell
'''
proc = subprocess.Popen(['osascript', '-'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
stdout_output = proc.communicate(script.format(ip=ip, username=username, pwd=pwd))[0]
相關問題
- 1. 如何在Applescript中運行python腳本?
- 2. 從AppleScript運行Python腳本時出錯
- 3. 如何從AppleScript運行shell腳本?
- 4. 從Applescript內運行bash腳本
- 5. 從Applescript調用Python腳本
- 6. 如何從java運行python腳本?
- 7. 如何從html運行python腳本
- 8. 如何從windows gui運行python腳本?
- 9. 如何從coldfusion10運行python腳本?
- 10. 如何從網頁運行python腳本?
- 11. 如何從shell運行python腳本
- 12. 如何從Python中的腳本運行多個腳本
- 13. 如何從腳本中查找Python運行腳本的目錄?
- 14. 如何運行python腳本?
- 15. 在AppleScript中運行Java腳本
- 16. 從AppleScript執行Sikuli腳本
- 17. 從Perl腳本運行Python腳本
- 18. 從Google Apps腳本運行python腳本
- 19. 從C++運行python腳本
- 20. 從SAS運行Python腳本
- 21. 從php運行python腳本
- 22. 從python腳本運行file.gms
- 23. 從PHP運行Python腳本
- 24. 從python腳本運行subprocess.call
- 25. 從webpy運行python腳本
- 26. 從crontab運行python腳本
- 27. 從Cron.d運行Python腳本
- 28. 從CruiseControl.NET運行python腳本
- 29. 從crontab運行python腳本
- 30. 從automator運行python腳本
如果你打算做任何不平凡的蘋果事件腳本從python,你應該使用appscript。它設計精良,成熟並且得到很好的支持。 – 2010-08-15 22:46:51
@Ned,當然,但爲了這樣一個簡單,特殊的目的,就像調用簡單的applescript,osascript -e和subprocess.call的「愚蠢的技巧」,正如文章的第1頁我提到的文章使用舊的'os.system',但這是一個細節;-)可能就足夠了。 – 2010-08-16 00:08:44
哦,亞歷克斯,我當然不反對*你*! – 2010-08-16 00:51:32