我面临着使用os.system()或子进程()通过Python运行Rscript的问题。
使用os.system()通过python运行命令对我来说一般都很好(例如,对于gdalwarp.exe),但对Rscript.exe则不起作用。
我唯一能看到的区别是路径上的空格。
避免路径中的空格问题很容易在CMD窗口中通过在引号中放置路径来克服。执行以下命令是成功的。
"C:/Program Files/R/R-3.0.2/bin/Rscript.exe" "D:/.../otsu_Script.R"
但我被Python困住了。到目前为止,我对python所做的尝试是:
os.system("C:/Program Files/R/R-3.0.2/bin/Rscript.exe" "D:/.../otsu_Script.R")
os.system(r"C:/Program Files/R/R-3.0.2/bin/Rscript.exe" "D:/.../otsu_Script.R")
os.system(r'"C:/Program Files/R/R-3.0.2/bin/Rscript.exe" "D:/.../otsu_Script.R"')
subprocess.call([r'C:/Program Files/R/R-3.0.2/bin/Rscript.exe', r'D:/.../otsu_Script.R'])
有人看到我做错什么了吗?预先谢谢你,艾克
发布于 2015-02-15 10:02:23
在对这样一个简单的问题有了理智之后。我决定将RStatistics重新安装到没有空格或点的路径上,比如:C:/R/bin/Rscript.exe
。
现在,subprocess.call(["C:/R/bin/Rscript.exe", "D:/otsu_Script.R"] )
或os.system("C:/R/bin/Rscript.exe D:/otsu_Script.R")
工作得很好。两天前应该试过的..。
..。但现在我是一只快乐的猴子了
https://stackoverflow.com/questions/28514769
复制相似问题