Как вызвать скрипт Python из R с аргументами

У меня есть скрипт Python, который принимает около 5 аргументов (имя файла, 3 значения типа int и 2 значения с плавающей точкой). Мне нужно вызвать этот сценарий Python от R. Как я могу это сделать. Я пытаюсь использовать rPython, но он не позволяет мне передать аргумент

library("rPython")
python.load("python scriptname")

Я не знаю, как передать аргументы

из командной строки я запускаю свой скрипт на python:

python scriptname filename 10 20 0.1 5000 30

2 ответа

Решение

Вы можете вызвать системную команду

system('python scriptname')

Чтобы запустить скрипт асинхронно, вы можете установить флаг ожидания в false.

system('python scriptname filename 10 20 0.1 5000 30', wait=FALSE)

Аргументы, которые передаются, как в командной строке. Вам нужно будет использовать sys.argv в коде Python для доступа к переменным

#test.py
import sys

arg1 = sys.argv[1]
arg2 = sys.argv[2]
print arg1, arg2

Команда R, приведенная ниже, выведет "Hello World"

system('python test.py hello world', wait=FALSE)

В большом предыдущем ответе есть небольшая опечатка. Правильный код следующий:

 system('python test.py hello world', wait = FALSE)

где ожидание - ЛОЖЬ (не ожидание = Ложь или ожидание = Ложь)

Другие вопросы по тегам