【问题标题】:calling python from R with instant output to console从 R 调用 python 并立即输出到控制台
【发布时间】:2014-05-22 18:36:21
【问题描述】:

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

system('python test.py')

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

这是我的 test.py 代码:

import time

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

【问题讨论】:

  • 它在 Linux 和 R 3.0.1 上运行良好 - 我看到了正在生成的输出
  • 我(原发帖人)在 MacOS 上运行它
  • 在 Windows 7 上,我看到了与 OP 相同的行为。如果运行的是 R 代码,我会调用 flush.console(),但这当然没有帮助。
  • 你可以使用 rPython R 包。

标签: python r


【解决方案1】:

在带有 R v3.0.1 的 Windows 8 上测试

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

更新:

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

import time
import sys

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

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

【讨论】:

  • @user3433489 如果我的回答解决了您的问题,请点击左侧的勾号接受它。它可以帮助其他用户知道这个问题已经解决并且这个解决方案确实有效。它还为您和我提供了一些代表点数。:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 2014-09-04
  • 1970-01-01
  • 2012-07-27
相关资源
最近更新 更多