从 R 脚本捕获执行结果

问题描述 投票:0回答:2

我有一个从 Python 调用的 R 脚本,我想捕获它的输出。我可以写入 CMD 以及 TXT,但我想捕获 Python 脚本中的输出,以便我可以使用它。

在 python 脚本中我尝试过:

logging.debug (os.popen ('Rscript testScript.r'))

但这不起作用。我也尝试过:

output = cmd ('Rscript testScript.r')

print (output)

但它返回 None 作为输出。

在 R 中我尝试过:

returnValue (TRUE)
但它写入 CMD,并且输出仍然是 None

如何让 R 脚本返回一个可以过滤以查看结果的值???

提前非常感谢您。

python r return
2个回答
0
投票

我找到了解决方案:

在 R 中,我们可以将选项放在

Try/catch

  error = function (cond)

这反映了在 Python 中我们可以收集的输出:

  print (stderr)
  print (stdout)

其中

stderr
是输出误差,
stdout
是标准输出。

希望有类似问题的人能有所帮助。


0
投票

在寻找同一问题的解决方案时,我遇到了使用

out <- "some string or dataframe or anything else"
write(out, stdout())

在 R 中。

根据你的Python示例:

import subprocess
output = subprocess.run(
    ['Rscript' 'testScript.r'],
    capture_output = True,
    text = True
    )
print(output.stdout)

所需的输出将存储在 stdout 属性中。

© www.soinside.com 2019 - 2024. All rights reserved.