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

使用OS模块从Python运行R脚本,python,r,operating-system,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/i3

我正试图使用
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
def runScript():
chdir('C:/ProgramFiles/R/R-3.0.2/bin/i386')
returnCode=os.system('R--vanilla
这不符合我的要求,返回1的返回码。有什么想法吗


另外,当我将windows命令提示符中的目录更改为上面的目录,并运行
R--vanilla
时,它会正常工作。

有什么问题吗

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
def runScript():
os.chdir(“”)
returnCode=os.system(r'C:/ProgramFiles/r/r-3.0.2/bin/i386/r--vanilla

根据:

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


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

它会非常快地闪烁windows命令提示符,然后像以前一样返回1。我对可执行的C程序进行了很多系统调用,我不知道为什么这个程序不能按我所希望的方式工作。os.system已经被弃用了。尝试使用子流程python模块。subprocess.call是您正在寻找的子流程的函数。call('C:/Program Files/R/R-3.0.2/bin/i386/R--vanilla