Re: [Python-es] ¿Hacer un | en plan bash con Subprocess.Popen?
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@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] ¿Hacer un | en plan bash con Subprocess.Popen?
> > 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@python.org https://mail.python.org/mailman/listinfo/python-es
[Python-es] ¿Hacer un | en plan bash con Subprocess.Popen?
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. ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es