我在lua生成图像和其他数据容器中的代码然后这些数据应该在另一个python脚本中使用。
我试图使用(os.execute(command)),如此处所示https://www.lua.org/pil/22.2.html但我不知道如何将这些参数直接从lua传递给python scriprt作为参数
答案 0 :(得分:1)
命令行参数只能是字符串 - 只能是相对较短的字符串,而且只能是默认系统编码可以处理的字符串。
如果您需要传递大型,结构化或任意二进制字节的数据,则无法使用命令行参数。
最简单的解决方案是将数据保存在文件中,然后将文件名作为命令行参数传递。然后,在Python端,您只需打开并读取相同的文件。
您还可以将数据流式传输到子进程的标准输入中。 Lua没有像Python subprocess
模块那样提供任何东西,但有时候popen
就足够了。
当popen
不够时,您可以在POSIX或Windows API调用之上自行构建它。有关为POSIX执行此操作的示例,请参阅this answer。
您也可以打开一个管道,共享内存段等让子进程继承,然后将文件描述符或键作为命令行参数传递。
最后,您可以编写一个简单的套接字服务器(可能使用更高级别的协议,库已经存在,范围从Netstrings到UDP到HTTP),并将端口号作为命令行参数传递。