我正尝试使用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函数是这样的:使用操作系统模块从Python运行R脚本
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
时,它的工作方式与预期的相同。
它非常快速地闪烁Windows命令提示符,然后像以前一样返回1。我对可执行的C程序做了很多系统调用,我不确定为什么这个程序不按我想要的方式工作。 – Thetravellingfool
os.system已被弃用。尝试使用子进程python模块。 subprocess.call是你正在寻找的功能 – praveen
subprocess.call('C:/ Program Files/R/R-3.0.2/bin/i386/R --vanilla
praveen