R系统调用多个Python命令

时间:2017-01-29 07:39:47

标签: python r

我需要将多个python命令传递给一个系统调用(在R中),我的语法有问题。

我想要结合起来:

system("python "file1.py" -f "module_to_load1.py" -o "output_loc_file1"")
system("python "file2.py" -f "module_to_load2.py" -o "output_loc_file2"")

简化代码:

 pystr="python -c print('hi')"
 system(paste(pystr, " && ", pystr, sep=""))

我想要的输出是:

hi
hi

如果我直接在命令提示符中输入代码,我会得到所需的输出:

python -c print('hi') && python -c print('hi')

>> hi
>> hi

然而,系统调用只返回一个'hi',我无法弄清楚我的愚蠢错误是什么。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您最好将其存储为脚本,而不是尝试管理凌乱的系统调用:

file:my.py

print "hi"
print "hi"

然后从R:

> system("python my.py")
hi
hi

如果您的实际代码更复杂,您可以生成python代码并将其写入您随后调用的文件。

答案 1 :(得分:0)

你不能像这样排列引号 - 嵌入式引号需要转义。而不是

system("python "file1.py" -f "module_to_load1.py" -o "output_loc_file1"")

DO

system("python \"file1.py\" -f \"module_to_load1.py\" -o \"output_loc_file1\"")

或者只是省略引号,因为文件名不包含麻烦的字符:

system("python file1.py -f module_to_load1.py -o output_loc_file1")

关于编写正确的Python脚本的建议仍然很好。