编程语言
首页 > 编程语言> > 通过subprocess.Popen在python中执行R脚本

通过subprocess.Popen在python中执行R脚本

作者:互联网

当我在R中执行脚本时,它是:

$R --vanilla --args test_matrix.csv < hierarchical_clustering.R > out.txt

在Python中,如果我使用它,它可以工作:

process = subprocess.call("R --vanilla --args "+output_filename+"_DM_Instances_R.csv < /home/kevin/AV-labels/Results/R/hierarchical_clustering.R > "+output_filename+"_out.txt", shell=True)

但是这种方法不提供process.wait()函数.

所以,我想使用subprocess.Popen,我试过:

process = subprocess.Popen(['R', '--vanilla', '--args', "\'"+output_filename+"_DM_Instances_R.csv\'",  '<', '/home/kevin/AV-labels/Results/R/hierarchical_clustering.R'])

但它没有用,Python只是打开R但没有执行我的脚本.

解决方法:

而不是’R’,给它通往Rscript的路径.我有同样的问题.打开R但不执行我的脚本.您需要调用Rscript(而不是R)来实际执行脚本.

retcode = subprocess.call("/Pathto/Rscript --vanilla /Pathto/test.R", shell=True)

这适合我.

干杯!

标签:os-system,python,r,subprocess
来源: https://codeday.me/bug/20190903/1796388.html