Python中文
首页
教程
问答
标签
搜索
登录
注册
python中ruby函数的返回值
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个由python脚本执行的ruby脚本。在python脚本中,我想访问ruby函数的返回值。在</p> <p>想象一下,我会有一个<strong>ruby脚本</strong><em>测试.rb</em>:</p> <pre><code>class TestClass def self.test_function(some_var) if case1 puts "This may take some time" # something is done here with some_var puts "Finished" else # just do something short with some_var end return some_var end end </code></pre> <p>现在,我想把函数的返回值放入python脚本中,打印的输出应该是stdout。在</p> <p>我尝试了以下方法(<strong>示例1</strong>):</p> ^{pr2}$ <p>但是,这给出了stdout的全部输出,<code>answer</code>只是退出代码。在</p> <p>因此,我尝试了这个(<strong>示例2</strong>):</p> <pre><code>from subprocess import check_output answer = check_output(["ruby", "-r", "test.rb", "-e", "puts TestClass.test_function('some meaningful text')"]) </code></pre> <p>这给了我函数在<em>else情况下的返回值(参见测试.rb)几乎马上。但是,如果<em>case1</em>为真,<code>answer</code>包含整个输出,但是在运行时测试.rb什么都不会印出来。在</p> <p>有什么方法可以得到ruby函数的返回值和打印到stdout的语句吗?理想情况下,该解决方案不需要安装其他模块。此外,我不能更改ruby代码。在</p> <p>编辑:</p> <p>也尝试过这样做,但是在运行ruby脚本时,这也没有给出stdout的输出(<strong>示例3</strong>):</p> <pre><code>import subprocess process = subprocess.Popen(["ruby", "-r", "test.rb", "-e", "puts TestClass.test_function('some meaningful text')"], stdout=subprocess.PIPE) answer = process.communicate() </code></pre> <p>我还认为这与在ruby脚本中将输出刷新到stdout无关。示例1立即给出了输出。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>查看<a href="http://docs.python.org/library/subprocess.html#popen-constructor" rel="nofollow">http://docs.python.org/library/subprocess.html#popen-constructor</a>并查看刷新stdout的ruby方法。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
将Pandas数据帧转换为PyTorch张量?
3 回答
将Pandas数据帧转换为scipy稀疏矩阵
7 回答
将Pandas数据帧转换为Spark Datafram时出现问题
9 回答
将pandas数据帧转换为spark DataFram时出错
6 回答
将Pandas数据帧转换为spark datafram时收到错误
3 回答
将Pandas数据帧转换为Spark数据帧
5 回答
将Pandas数据帧转换为Tensorflow数据
1 回答
将Pandas数据帧转换为tkinter obj
5 回答
将pandas数据帧转换为XML
1 回答
将Pandas数据帧转换为值sql语句
1 回答
将pandas数据帧转换为元组
5 回答
将pandas数据帧转换为元组列表
6 回答
将pandas数据帧转换为元组列表并删除所有pandas数据类型
2 回答
将pandas数据帧转换为具有头和数据类型的numpy数组
3 回答
将pandas数据帧转换为内存中的拼花地板,并将其加载到Python中的Hadoop中
2 回答
将pandas数据帧转换为内存中类似文件的对象?
10 回答
将Pandas数据帧转换为内存功能(&F)
1 回答
将pandas数据帧转换为列表列表
10 回答
将pandas数据帧转换为列表列表以输入到RNN
4 回答
将Pandas数据帧转换为单行DataFram
3 回答