使用SubProcess在Python中运行R脚本时出错

时间:2018-05-18 02:06:10

标签: python r subprocess

我正在尝试在执行python脚本时运行与python脚本位于同一目录中的R脚本。

到目前为止,我有:

if condition is True:
    import subprocess
    subprocess.call (["C:/Program Files/R/R-3.4.3/Rscript", "./testing.r"])
    sys.exit()

我一直收到错误:

OSError: [WinError 193] %1 is not a valid Win32 application

我已尝试更换" C:/ Program Files / R / R-3.4.3 / Rscript"用" / usr / bin / Rscript"但一直得到同样的错误。我想知道是否有人会知道为什么会一直抛出这个错误?

1 个答案:

答案 0 :(得分:0)

我相信subprocess.call的参数会直接传递给命令行,所以你需要将引号转义为“\”C:/ Program Files / R / R-3.4.3 / Rscript \“” 。话虽这么说,我使用它时出现[WinError 5]访问冲突错误。解决方法是使用可执行文件参数:

import sys
import subprocess

if True is True:
    subprocess.call(["C:/Program Files/R/R-3.4.3/Rscript.exe", "./testing.r"], 
                    executable="C:/Program Files/R/R-3.4.3/Rscript.exe")
    sys.exit()

此外,请确保C:/ Program Files / R / R-3.4.3 / Rscript.exe是Rscript.exe的位置。我的是C:/ Program Files / R / R-3.4.3 / bin / Rscript.exe。