我有一个从 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 脚本返回一个可以过滤以查看结果的值???
提前非常感谢您。
我找到了解决方案:
在 R 中,我们可以将选项放在
Try/catch
中
error = function (cond)
这反映了在 Python 中我们可以收集的输出:
print (stderr)
print (stdout)
其中
stderr
是输出误差,stdout
是标准输出。
希望有类似问题的人能有所帮助。
在寻找同一问题的解决方案时,我遇到了使用
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 属性中。