更好的方法从Python执行Ruby文件并获取Ruby控制台输出?
我正在用Python构建一个独立的程序。这个独立程序需要执行一个Ruby文件。
我看过这篇文章 - http://www.decalage.info/python/ruby_bridge。我使用了os.system(),这个方法运行得很好。不过我遇到了一个问题。如果Ruby文件里面有错误,程序就会直接停止,而不会显示错误信息。你能告诉我怎么获取Ruby的控制台输出,这样我就可以在我的独立程序中显示这些信息吗?
1 个回答
5
你可以使用 subprocess 模块
cmd="ruby myrubyscript.rb"
p=subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
output, errors = p.communicate()
然后使用 output
这个变量
需要注意的是,你的 Python 程序是否能正常运行,取决于你是否安装了 Ruby。如果可以的话,尽量把所有事情都用 Python 来完成。