我想从python脚本中调用R程序。
我写了以下内容:
os.system("cat " + variableName + " | code.R")
它返回错误:sh:1:code.R:not found cat:写入错误:管道损坏
然而,我确定R档案的名称。
为什么不起作用?
答案 0 :(得分:1)
当前工作目录中有code.R
吗?它可执行吗?你可以从shell运行cat xxx | code.R
并让它正常工作,而不是运行你的python程序吗?
答案 1 :(得分:1)
因此,如果code.R
是必须解释的脚本,则必须为解释器而不是脚本构建管道。您收到Broken PIPE
错误,因为它自己code.R
不知道如何处理命令行参数。
另一方面,如果您想要的是将variable
值存储在code.R中,则必须按|
更改>>
。
os.system(“cat”+ variablename +“>> code.R”)
编辑:由于它在终端上运行,请尝试以下方法:
import subprocess
input = open(variableName, "r")
result = suprocess.call(["code.R"], stdin=input) # result is the return code for the command being called.
有关详细信息,请参阅subprocess.call。