通过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