Skip to main content

Problem sending variables to Client.RunPythonEx

I had someone come to me with a problem in which they were using the Client.RunPythonEx to send variables to their python script. Every time they ran their script the had the following error: "Python generated the following error: EOL while scanning string literal". What they were trying to do was to send the working directory to python using the RunPythonEx. So there code was something like this:

Dim myPythonVariables(3) As Variant
Sub Main
    Dim sStringVariable
    Dim iNumericVariable
    
    sStringVariable = Client.WorkingDirectory()
    iNumericVariable = 3
    
    myPythonVariables(0) = "Random Text"
    myPythonVariables(1) = 3747892
    myPythonVariables(2) =sStringVariable 
    myPythonVariables(3) = iNumericVariable
    
    Client.RunPythonEx "Macros.ILB\Example 1.py", myPythonVariables
End Sub

The sStringVariable would through an error.  The problem is that a variable contain a path has "\" in it which are escape character in Python.  What was needed was to add a line that escaped the "\" so that it could become "\\" instead.  The following line was added to the script after the sStringVariable = Client.WorkingDirectory() and that fixed the problem.

sStringVariable = iReplace(sStringVariable, "\", "\\")