You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何把R中system调用Python脚本的输出结果存入R对象?

在R中捕获Python脚本的输出结果

你的问题出在两个地方:一是错误使用了readline()函数(它用于读取用户手动输入,而非捕获系统命令的输出);二是默认调用system()时,命令的输出只会打印到控制台,不会返回给R对象。

以下是两种可行的解决方法:

方法一:使用system()的intern=TRUE参数

通过设置intern=TRUE,可以让system()把命令的输出以字符向量的形式返回,之后再转换为数值类型即可:

# 注意替换为正确的Python脚本路径和参数
xx <- system("python ./myScript.py 3 4", intern = TRUE)
# 将字符结果转为整数
xx <- as.integer(xx)

方法二:使用system2()函数(更推荐)

system2()的参数设计更清晰,通过stdout=TRUE指定捕获标准输出:

xx <- system2("python", args = c("./myScript.py", "3", "4"), stdout = TRUE)
xx <- as.integer(xx)

额外注意事项

  • 确保Python命令的正确性:如果你的环境中需要用python3而非python,替换掉对应命令即可;
  • 检查脚本路径:确认./myScript.py或../my_pythonScript.py的路径与实际文件位置匹配,避免因路径错误导致无法执行脚本;
  • 输出转换:因为捕获到的输出是字符类型,需要用as.integer()或as.numeric()转换为数值,才能进行后续数值运算。

内容的提问来源于stack exchange,提问作者user3236841

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:05:14