将变量从 python 传递到 AppleScript [英] Pass variable into AppleScript from python

查看:34
本文介绍了将变量从 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)

这篇关于将变量从 python 传递到 AppleScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆