将变量从 python 传递到 AppleScript
有人可以告诉我如何使用 python 中的 osascript 将变量传递到 Applescript 中吗?我已经看过一些关于这样做的文档/样本,但我根本不理解.
Can someone show me how to pass a variable into an Applescript using osascript in python? I've seen some documentation/samples on doing this but I'm not understanding it at all.
这是我的python代码:
Here is my python code:
# I want to pass this value into my apple script below
myPythonVariable = 10
cmd = """
osascript -e '
tell application "System Events"
set activeApp to name of first application process whose frontmost is true
if "MyApp" is in activeApp then
set stepCount to myPythonVariableIPassIn
repeat with i from 1 to stepCount
DoStuff...
end repeat
end if
end tell
'
"""
os.system(cmd)
使用 + 运算符的字符串连接
String concatenation with the + operator
myPythonVariable = 10
cmd = """
osascript -e '
tell application "System Events"
set activeApp to name of first application process whose frontmost is true
if "MyApp" is in activeApp then
set stepCount to """ + str(myPythonVariable) + """
repeat with i from 1 to stepCount
-- do something
end repeat
end if
end tell
'
"""
或者,使用 {} 进行字符串格式化:
myPythonVariable = 10
cmd = """
osascript -e '
tell application "System Events"
set activeApp to name of first application process whose frontmost is true
if "MyApp" is in activeApp then
set stepCount to {0}
repeat with i from 1 to stepCount
-- do something
end repeat
end if
end tell
'
""".format(myPythonVariable)
{0} 是第一个变量的占位符,{1} 是第二个变量的占位符,....
{0} is the place-holder for the first variable, {1} is the place-holder for the second variable, ....
对于多个变量:
.format(myPythonVariable, var2, var3)
.format(myPythonVariable, var2, var3)
或者,使用 %s 运算符进行字符串格式化
Or, string formatting with the %s operator
myPythonVariable = 10
cmd = """
osascript -e '
tell application "System Events"
set activeApp to name of first application process whose frontmost is true
if "MyApp" is in activeApp then
set stepCount to %s
repeat with i from 1 to stepCount
-- do something
end repeat
end if
end tell
'
""" % myPythonVariable
对于多个变量:
% (myPythonVariable, var2, var3)
% (myPythonVariable, var2, var3)