Suppose I have a Lua script that contains 2 functions. I would like to call each of these functions with some arguments from a Python script.
I have seen tutorials on how to embed Lua code in Python and vice versa using Lunatic Python, however, my Lua functions to be executed in the Python script are not static and subject to change.
Hence, I need some way of importing the functions from the .lua file or simply executing the .lua file from the Python script with some arguments and receive a return value.
Could someone point me in the right direction?
Would be much appreciated.
You can use a
subprocess
to run your Lua script and provide the function with it's arguments.-l
requires the given library (your script)-e
is the code that should be executed on start (your function)The value of result will be the value of
STDOUT
, so just write your return value to it and you can simply read it in your Python script. The demo Lua script I used for the example simply prints the arguments:In this example both files have to be in the same folder and the
lua
executable must be on yourPATH
.An other solution where only one Lua VM is spawned is using
pexpect
and run the VM in interactive mode.So you can use
sendline(...)
to send a command to the interpreter andreadline()
to read the output. The firstchild.readline()
after thesendline()
reads the line where the command will be print toSTDOUT
.