2016-03-02 1 views
1

У меня есть скрипт R, который отлично работает сам по себе, но мне нужно, чтобы он был частью скрипта python. Итак, когда я запускаю скрипт python, сценарий R выполняется автоматически. Я использую команду ниже; ошибки нет, но выходные файлы R-скриптов не создаются.Выполнение скрипта R с помощью Python через subprocess.call

import subprocess 

retcode = subprocess.call("C:/Program Files/R/R-3.2.2/bin/Rscript --vanilla T:/2012.R", shell=True) 

Большое вам спасибо. не

+0

Я пробовал, но все равно никакого результата без сообщения об ошибке. – user460213

+2

Что происходит с простой тестовой программой: 'print.hw <- function() { print (" hello world ") }; print.hw() ' –

+0

Есть ли синтаксическая ошибка с пути к интерпретатору Rscript? Моя интуиция заключается в том, что вам нужно избегать пробелов в пути. C:/Program \ Files/R/R-3.2.2/bin/Rscript – IcarianComplex

ответ

1

Просто поместите команду строки в скобках и разбить строку на отдельные компоненты, как первый параметр функции ожидает список аргументов, согласно doc:

subprocess.call (арг, * STDIN = None , стандартный вывод = None, STDERR = None, оболочки = False)

import subprocess 

retcode = subprocess.call(['C:/Program Files/R/R-3.2.2/bin/Rscript', '--vanilla', 
          'T:/2012.R'], shell=True) 

С другой стороны, не разбить его на несколько строк:

command = 'C:/Program Files/R/R-3.2.2/bin/Rscript' 
arg = '--vanilla' 
path2script = 'T:/2012.R' 

retcode = subprocess.call([command, arg, path2script], shell=True) 
Смежные вопросы