From tres.14159 en gmail.com Mon Jun 4 20:32:29 2018 From: tres.14159 en gmail.com (Miguel de Dios Matias) Date: Tue, 5 Jun 2018 02:32:29 +0200 Subject: [Python-es] =?utf-8?q?=C2=BFHacer_un_=7C_en_plan_bash_con_Subpro?= =?utf-8?q?cess=2EPopen=3F?= Message-ID: Buenas. Jugando image imagick he encontrado este script en bash para generar iconos de pixeles aleatorios: mx=8;my=8;head -c "$((3*mx*my))" /dev/urandom | convert -depth 8 -size "${mx}x${my}" RGB:- /tmp/random.png Y por aprender quería pasarlo a Python, pero no he sido capaz. #!/usr/bin/python3 import subprocess result = subprocess.run(['head', '-c {}'.format(3 * size * size), '/dev/urandom'], stdout=subprocess.PIPE)print('{}'.format(result)) result = subprocess.run(['convert', '-depth 8', '-size{}x{}'.format(size, size), 'RGB:-', '/tmp/random.png'], stdin=result.stdout, stdout=subprocess.PIPE) Falla y da un error de que: convert-im6.q16: unrecognized option `-size8x8' @ error/convert.c/ConvertImageCommand/2969. Algo estoy haciendo mal, pero no se el que...no se si sera que el stdout del primer proceso es bytes... Por cierto he puesto la pregunta en stackoverflow por si alguien la quiere contestar ahí y le doy un voto. https://stackoverflow.com/questions/50682514/when-python3-chain-two-subprocess-run-such-as-bash-pipe-get-error-attributeer Saludos. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Mon Jun 4 21:10:27 2018 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Mon, 4 Jun 2018 21:10:27 -0400 Subject: [Python-es] =?utf-8?q?=C2=BFHacer_un_=7C_en_plan_bash_con_Subpro?= =?utf-8?q?cess=2EPopen=3F?= In-Reply-To: References: Message-ID: > > Falla y da un error de que: > convert-im6.q16: unrecognized option `-size8x8' @ > ?te falta un espacio en blanco entre "-size" y "8x8"? From sney2002 en gmail.com Mon Jun 4 21:33:06 2018 From: sney2002 en gmail.com (Jhonatan Sneider Salguero Villa) Date: Mon, 4 Jun 2018 20:33:06 -0500 Subject: [Python-es] =?utf-8?q?=C2=BFHacer_un_=7C_en_plan_bash_con_Subpro?= =?utf-8?q?cess=2EPopen=3F?= In-Reply-To: References: Message-ID: Hola, Creo que debes usar subprocess.Popen que retorna un stdout que se comporta como un archivo (que es lo que espera stdin) en lugar de run que retorna el resultado en un string. import subprocess size = 32 random = subprocess.Popen(['head', '-c {}'.format(3 * size * size), '/dev/urandom'], stdout=subprocess.PIPE) result = subprocess.Popen(['convert', '-depth', '8', '-size', '{}x{}'.format(size, size), 'RGB:-', 'random2.png'], stdin=random.stdout, stdout=subprocess.PIPE) 2018-06-04 20:10 GMT-05:00 Jose Caballero : > > > > Falla y da un error de que: > > convert-im6.q16: unrecognized option `-size8x8' @ > > > > > ?te falta un espacio en blanco entre "-size" y "8x8"? > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From funollet en fastmail.fm Tue Jun 5 04:48:05 2018 From: funollet en fastmail.fm (Jordi Funollet) Date: Tue, 05 Jun 2018 10:48:05 +0200 Subject: [Python-es] =?utf-8?q?=C2=BFHacer_un_=7C_en_plan_bash_con_Subpro?= =?utf-8?q?cess=2EPopen=3F?= In-Reply-To: References: Message-ID: <1528188485.361057.1396797872.5E1E79D2@webmail.messagingengine.com> 'shlex' me ha salvado a menudo de estos errores. import subprocess import shlex cmd = shlex.split('''convert -depth 8 -size{}x{} RGB:- /tmp/random.png'''.format(size, size)) result = subprocess.run(cmd, stdin=result.stdout, stdout=subprocess.PIPE) -- Jordi Funollet Pujol http://www.linkedin.com/in/jordifunollet From tres.14159 en gmail.com Wed Jun 6 02:43:20 2018 From: tres.14159 en gmail.com (Miguel de Dios Matias) Date: Wed, 6 Jun 2018 08:43:20 +0200 Subject: [Python-es] =?utf-8?q?=C2=BFHacer_un_=7C_en_plan_bash_con_Subpro?= =?utf-8?q?cess=2EPopen=3F?= In-Reply-To: <1528188485.361057.1396797872.5E1E79D2@webmail.messagingengine.com> References: <1528188485.361057.1396797872.5E1E79D2@webmail.messagingengine.com> Message-ID: Uy gracias. El mar., 5 jun. 2018 10:50, Jordi Funollet escribió: > 'shlex' me ha salvado a menudo de estos errores. > > import subprocess > import shlex > > cmd = shlex.split('''convert -depth 8 -size{}x{} RGB:- > /tmp/random.png'''.format(size, size)) > result = subprocess.run(cmd, stdin=result.stdout, stdout=subprocess.PIPE) > > > -- > Jordi Funollet Pujol > http://www.linkedin.com/in/jordifunollet > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es Premio para el señor Jordi, algo mal hacía pasando los parámetros a Popen que lo rompía pero con shlex va perfecto. Si quieres poner tu solución en stackoverflow para darte unos puntos de karma. Gracias. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: