Pass variable into AppleScript from python
<p>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.  </p>

<p>Here is my python code:</p>

<pre><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)
</code></pre>

<p>String concatenation with the <strong>+</strong> operator</p>

<pre><code>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
    '
    """
</code></pre>

<hr>

<p>Or, string formatting with the <strong>{}</strong> :</p>

<pre><code>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)
</code></pre>

<p><strong>{0}</strong> is the place-holder for the first variable, <strong>{1}</strong> is the place-holder for the second variable, ....</p>

<p>For multiple variables: </p>

<blockquote>
  <p>.format(myPythonVariable, var2, var3)</p>
</blockquote>

<hr>

<p>Or, string formatting with the <strong>%s</strong> operator</p>

<pre><code>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
</code></pre>

<p>For multiple variables: </p>

<blockquote>
  <p>% (myPythonVariable, var2, var3)</p>
</blockquote>

python applescript osascript