使用python中的子进程模块运行带命令行输入的lua脚本

时间:2016-07-06 04:13:17

标签: python python-2.7 command-line lua subprocess

我有一个带有命令行输入的Lua脚本,我想在Python(2.7)中运行并读取输出。例如,我将在终端(Ubuntu 14.xx)中运行的代码如下所示:

file:///about/about.html

如何使用子进程模块在Python中使用命令行输入运行Lua脚本?我认为会是这样的:

lua sample.lua -arg1 helloworld -arg2 "helloworld"

这样做的正确方法是什么?

这与下面的链接非常相​​似,但不同之处在于我也尝试使用命令行输入。下面的问题只是调用(Lua)脚本中定义的Lua函数,并将输入直接提供给该函数。任何帮助将非常感谢。

Run Lua script from Python

2 个答案:

答案 0 :(得分:2)

如果您不确定,通常可以传递在shell中有效的逐字字符串,并将其与shlex.split分开:

import shlex
subprocess.check_output(shlex.split('lua sample.lua -arg1 helloworld -arg2 "helloworld"'))

但是,你通常不需要这样做,如果你事先知道它们是什么,可以手工拆分:

subprocess.check_output(['lua', 'sample.lua', '-arg1', 'helloworld', '-arg2', 'helloworld'])

答案 1 :(得分:1)

试试这个:

import subprocess

print subprocess.check_output('lua sample.lua -arg1 helloworld -arg2 "helloworld"', shell=True)