如何从lua里面将运行时变量传递给python脚本?

时间:2018-04-04 17:57:57

标签: python lua

我在lua生成图像和其他数据容器中的代码然后这些数据应该在另一个python脚本中使用。

我试图使用(os.execute(command)),如此处所示https://www.lua.org/pil/22.2.html但我不知道如何将这些参数直接从lua传递给python scriprt作为参数

1 个答案:

答案 0 :(得分:1)

命令行参数只能是字符串 - 只能是相对较短的字符串,而且只能是默认系统编码可以处理的字符串。

如果您需要传递大型,结构化或任意二进制字节的数据,则无法使用命令行参数。

最简单的解决方案是将数据保存在文件中,然后将文件名作为命令行参数传递。然后,在Python端,您只需打开并读取相同的文件。

您还可以将数据流式传输到子进程的标准输入中。 Lua没有像Python subprocess模块那样提供任何东西,但有时候popen就足够了。

popen不够时,您可以在POSIX或Windows API调用之上自行构建它。有关为POSIX执行此操作的示例,请参阅this answer

您也可以打开一个管道,共享内存段等让子进程继承,然后将文件描述符或键作为命令行参数传递。

最后,您可以编写一个简单的套接字服务器(可能使用更高级别的协议,库已经存在,范围从Netstrings到UDP到HTTP),并将端口号作为命令行参数传递。