从R调用python,即时输出到控制台

时间:2014-05-22 18:36:22

标签: python r

我使用R命令从R运行python脚本:

system('python test.py')

但是我的test.py中的print语句在python程序完成之前不会出现在R控制台中。我希望查看打印语句,因为python程序在R里面运行。我也试过sys.stdout.write(),但结果是一样的。非常感谢任何帮助。

这是我的test.py代码:

import time

for i in range(10):
  print 'i=',i
  time.sleep(5)

1 个答案:

答案 0 :(得分:2)

使用R v3.0.1在Windows 8上测试

只需右键单击r控制台,然后取消选中/取消选择 Buffered Output选项(参见下图)。现在执行您的代码,您将看到print语句的输出!

image-file

更新:

我忘了提到我还需要在python文件中的sys.stdout.flush()语句之后添加print

import time
import sys

for i in range(5):
    print 'i=',i
    sys.stdout.flush()
    time.sleep(1)

此外,如果您选择Buffered Output选项,则在脚本执行时左键单击r控制台时,您将看到输出。继续单击,显示输出。 :)