我有一个带有命令行输入的Lua脚本,我想在Python(2.7)中运行并读取输出。例如,我将在终端(Ubuntu 14.xx)中运行的代码如下所示:
file:///about/about.html
如何使用子进程模块在Python中使用命令行输入运行Lua脚本?我认为会是这样的:
lua sample.lua -arg1 helloworld -arg2 "helloworld"
这样做的正确方法是什么?
这与下面的链接非常相似,但不同之处在于我也尝试使用命令行输入。下面的问题只是调用(Lua)脚本中定义的Lua函数,并将输入直接提供给该函数。任何帮助将非常感谢。
答案 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)