web-dev-qa-db-fra.com

comment appeler python à partir de R avec des arguments

J'ai un script python qui prend environ 5 arguments (un nom de fichier, 3 valeurs int et 2 valeurs flottantes). J'ai besoin d'appeler cela python de R . Comment puis-je faire cela. J'essaie d'utiliser rPython, mais cela ne me permet pas de passer l'argument

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

Je ne sais pas comment passer les arguments

à partir de la ligne de commande, j'exécute mon script python comme:

python scriptname filename 10 20 0.1 5000 30
13
user1631306

Vous pouvez appeler une commande système

system('python scriptname')

Pour exécuter le script de manière asynchrone, vous pouvez définir l'indicateur d'attente sur false.

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

Les arguments qui sont passés comme ils le feraient en ligne de commande. Vous devrez utiliser sys.argv dans le code python pour accéder aux variables

#test.py
import sys

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

La commande R ci-dessous afficherait "Bonjour tout le monde"

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

Il y a une petite faute de frappe dans la grande réponse précédente. Le bon code est le suivant:

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

attendre est FAUX (pas attendre = Flase ou attendre = Faux)

8
andrii