Juan Abasolo
2019-Jun-14 10:14 UTC
[R-es] Ejecutar un script de Python con argumentos desde R
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 en 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> [[alternative HTML version deleted]]
Marcelino De La Cruz Rot
2019-Jun-14 10:51 UTC
[R-es] Ejecutar un script de Python con argumentos desde R
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 en urjc.es > <mailto:marcelino.delacruz en 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
Juan Abasolo
2019-Jun-14 13:48 UTC
[R-es] Ejecutar un script de Python con argumentos desde R
Y así es como cada vez te debo más cervezas o cafés! Mil gracias. Me faltaba invocar *python* *system(* * paste0('python script.py ', paste0(ar[i], '1 '), ar[i], paste0(' ', ar[i], '3') ) )* Entiendo que el comando shell() es para que funcione en windows; en Linux con el original system() es suficiente. Veo que tengo que hacer algo también para que el sistema espere a que se termine de ejecutar el comando, porque necesito que lea los ficheros que genera. Pero de eso me desasno leyendo. Gracias Hau idatzi du Marcelino De La Cruz Rot (marcelino.delacruz en urjc.es) erabiltzaileak (2019 eka. 14, or. (12:52)):> 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 en urjc.es > > <mailto:marcelino.delacruz en 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 > >-- 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> [[alternative HTML version deleted]]