使用子进程运行LUA脚本

当我在python脚本中使用os.system时,以下LUA命令会运行。但是脚本不会等待这个LUA进程完成。

os.system("cd ~/code/CNNMRF; qlua cnnmrf.lua -max_size 750  -content_name test -style_name style_img")

我理解需要使用subprocess。如何将此os.system命令映射到subprocess

当我查看示例时,我看到subprocess.run(["ls", "-l"]),但我不确定如何将其修改为我的情况。

点赞
用户412793
用户412793

os.system 可以运行进程。 cd ... ; 是一个 shell 命令。

你所需要的是 subprocess.run(["lua", "cnnmrf.lua" ...], shell=True, cwd='/home/<your user>/code/CNNMRF');

subprocess.call 中,你可以传递当前工作目录。在那里,你不能使用 ~。你需要传递常规路径 /home/.../code/CNNMRF

subprocess.run 的参数是列表。所以你需要根据空格将你的命令拆分。

2019-04-26 10:46:31