[R-es] Ejecutar un script de Python con argumentos desde R

Marcelino De La Cruz Rot m@rce||no@de|@cruz @end|ng |rom urjc@e@
Vie Jun 14 12:51:54 CEST 2019


Hola Juan:

en vez de system(), quería decir shell(), es decir:

shell(
  paste0('script.py ',

              paste0(ar[i], '1 '),
              ar[i],
              paste0(' ', ar[i], '3')
              )

)

Si el script está en el working directory [getwd()], te debería 
funcionar sin problemas.

Tanto system() como shell() te permiten interactuar con el sistema 
fácilmente. Cada una tiene sus peculiaridades. Consulta ?system y ?shell





El 14/06/2019 a las 12:14, Juan Abasolo escribió:
> Ni idea de eso; te lo agradezco. Seguramente lo voy a terminar usando 
> bastante.
> Pregunto: ahí debería hacer todas las operaciones propias del sistema? 
> No me encuentra el script, y se me hace raro. Capaz que pasa al 
> sistema desde la carpeta en la que está el script de R, no desde el wd 
> de R.
> Ahora me toca salir y después intentar probar y que funcione.
> Gracis de vuelta
>
>
>
> Hau idatzi du Marcelino De La Cruz Rot (marcelino.delacruz using urjc.es 
> <mailto:marcelino.delacruz using urjc.es>) erabiltzaileak (2019 eka. 14, or. 
> (11:46)):
>
>     ¿Has probado esto?
>
>     system(
>     > paste0('script.py ',
>
>                  paste0(ar[i], '1 '),
>                  ar[i],
>                  paste0(' ', ar[i], '3')
>                  )
>
>     )
>
>
>
>
>     El 14/06/2019 a las 11:36, Juan Abasolo escribió:
>     > Hola, amigos
>     > Se me acabo la sapienza. A ver:
>     > tengo un sript de Python script.py que neesita sus argumentos
>     arg1 arg2
>     > arg3, si desde la consola del sistema me pongo en la carpeta en
>     la que lo
>     > tengo y hago:
>     > $ script.py arg1 arg arg3
>     > Funciona perfecto.
>     >
>     > Pero desde R no lo consigo (entiendo que por no saber)
>     >
>     > Lo hago así (copio y pego):
>     >
>     > dir <- getwd()
>     > setwd('data/row/directoriocondatos/')
>     >
>     > py_run_string(
>     >          paste0('script.py ',
>     >              paste0(ar[i], '1 '),
>     >              ar[i],
>     >              paste0(' ', ar[i], '3')
>     >              ))
>     > setwd(dir)
>     >
>     > El resultado del paste0() ese lo pego en la consola del sistema y
>     > perfecto... pero olvidate del for. Yo quiero que el script quede
>     integrado
>     > para hacer todo de un solo paso, pero no sé.
>     >> paste0('script.py ',
>     >              paste0(ar[i], '1 '),
>     >              ar[i],
>     >              paste0(' ', ar[i], '3')
>     >              )
>     > [1] "script.py arg1 arg arg3" # Si eso lo pego en la consola,
>     todo bien.
>     >
>     > Eso significa que tengo que corregir algo de la orden, o
>     cambiarla o...
>     > manden
>     > Alguien que me desasne?
>     >
>     >
>
>     -- 
>     Marcelino de la Cruz Rot
>     Depto. de Biología y Geología
>     Física y Química Inorgánica
>     Universidad Rey Juan Carlos
>     Móstoles España
>
>
>
> -- 
> Juan Abasolo
>
> Hizkuntzaren eta Literaturaren Didaktika Saila | EUDIA ikerketa taldea
> Bilboko Hezkuntza Fakultatea
> Euskal Herriko Unibertsitatea
> UPV/EHU
>
> Sarriena auzoa z/g 48940 - Leioa (Bizkaia)
>
> T: (+34) 94 601 7567
> Telegram: @JuanAbasolo
> Skype: abasolo72
>
> Tutoretza ordutegia <https://labur.eus/JAbasolo-tutoretzak>


-- 
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España



Más información sobre la lista de distribución R-help-es