使用OS模块从Python运行R脚本

时间:2014-01-07 22:13:11

标签: python r operating-system

我正在尝试使用os.chdir()os.system()在Python中运行R中的简单脚本。我能够从Windows命令提示符运行代码,所以我不认为从Python运行它将是一个问题。我的R程序位于C:/Program Files/R/R-3.0.2/bin/i386,R脚本位于C:/Users/Kyle/Desktop/script.R,因此我的Python函数如下所示:

def runScript():
    os.chdir('C:/Program Files/R/R-3.0.2/bin/i386')
    returnCode = os.system('R --vanilla < C:/Users/Kyle/Desktop/script.R')
    print returnCode
    return

这不能做我想做的事情,并返回1的返回码。有什么想法吗?

P.S。当我将Windows命令提示符中的目录更改为上面的目录并运行R --vanilla < C:/Users/Kyle/Desktop/script.R时,它的工作方式与预期的一样。

2 个答案:

答案 0 :(得分:0)

有什么问题
def runScript():
    os.chdir('')
    returnCode = os.system(r'C:/Program Files/R/R-3.0.2/bin/i386/R --vanilla < C:/Users/Kyle/Desktop/script.R')
    print returnCode
    return returnCode

答案 1 :(得分:0)

根据os.system documentation

  

在cmd.exe系统(Windows NT,2000和XP)上,这是命令运行的退出状态

这意味着您的R脚本肯定会使用命令“exit(1)”退出,或者有一个错误,该错误由R解释器的default error handler处理。