更好的方法从Python执行Ruby文件并获取Ruby控制台输出?

3 投票
1 回答
3608 浏览
提问于 2025-04-16 04:59

我正在用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 来完成。

撰写回答