Articles of popen

cómo llamar a un progtwig desde Python sin esperar a que regrese

¿hay una manera de llamar a un progtwig desde python sin esperar a que regrese? Creé un script que copia un progtwig a un directorio y ejecuta ese progtwig. pero cuando llamo al progtwig desde python, la secuencia de comandos de python no se cierra hasta que el progtwig inicié las salidas. He intentado os.system […]

Codificación Python para pipe.communicate

Estoy llamando a pipe.communicate desde el módulo de subprocess de Python desde Python 2.6. Me sale el siguiente error de este código: from subprocess import Popen pipe = Popen(cwd) pipe.communicate( data ) Para un cwd arbitrario, y donde los data que contienen unicode (específicamente 0xE9): Exec. exception: ‘ascii’ codec can’t encode character u’\xe9′ in position […]

Proceso de lectura de stdout en tiempo real.

Consideremos este fragmento: from subprocess import Popen, PIPE, CalledProcessError def execute(cmd): with Popen(cmd, shell=True, stdout=PIPE, bufsize=1, universal_newlines=True) as p: for line in p.stdout: print(line, end=”) if p.returncode != 0: raise CalledProcessError(p.returncode, p.args) base_cmd = [ “cmd”, “/c”, “d:\\virtual_envs\\py362_32\\Scripts\\activate”, “&&” ] cmd1 = ” “.join(base_cmd + [‘python -c “import sys; print(sys.version)”‘]) cmd2 = ” “.join(base_cmd + […]

Error de Popen: No existe tal archivo o directorio

Tengo algunos comandos personalizados. # works subprocess.Popen([‘python’], stdout=subprocess.PIPE) Pero si tengo mis propios comandos del sistema como deactivate , recibo ese error Traceback (most recent call last): File “runner2.py”, line 21, in main() File “runner2.py”, line 18, in main subprocess.Popen([‘deactivate’,], stdout=subprocess.PIPE) File “/usr/lib/python2.6/subprocess.py”, line 633, in __init__ errread, errwrite) File “/usr/lib/python2.6/subprocess.py”, line 1139, in _execute_child […]

canalice una gran cantidad de datos a stdin mientras usa subprocess.Popen

Estoy luchando para entender cuál es la forma en que Python resuelve este problema simple. Mi problema es bastante simple. Si usas el siguiente código se colgará. Esto está bien documentado en el módulo de subproceso doc. import subprocess proc = subprocess.Popen([‘cat’,’-‘], stdin=subprocess.PIPE, stdout=subprocess.PIPE, ) for i in range(100000): proc.stdin.write(‘%d\n’ % i) output = proc.communicate()[0] […]

Subproceso Python Popen.communicate () equivalente a Popen.stdout.read ()?

Pregunta muy específica (espero): ¿Cuáles son las diferencias entre los siguientes tres códigos? (Espero que sea solo que el primero no espere a que finalice el proceso hijo, mientras que el segundo y el tercero sí. Pero debo estar seguro de que esta es la única diferencia …) También doy la bienvenida a otros comentarios […]

Ejecute el proceso en segundo plano en Python y NO espere

Mi objective es simple: iniciar rsync y NO ESPERAR. Python 2.7.9 en Debian Código de muestra: rsync_cmd = “/usr/bin/rsync -a -e ‘ssh -i /home/myuser/.ssh/id_rsa’ {0}@{1}:'{2}’ {3}”.format(remote_user, remote_server, file1, file1) rsync_cmd2 = “/usr/bin/rsync -a -e ‘ssh -i /home/myuser/.ssh/id_rsa’ {0}@{1}:'{2}’ {3} &”.format(remote_user, remote_server, file1, file1) rsync_path = “/usr/bin/rsync” rsync_args = shlex.split(“-a -e ‘ssh -i /home/mysuser/.ssh/id_rsa’ {0}@{1}:'{2}’ {3}”.format(remote_user, […]

subprocess.Popen.stdout – lectura de la salida estándar en tiempo real (otra vez)

De nuevo, la misma pregunta. La razón es que todavía no puedo hacer que funcione después de leer lo siguiente: Interceptación en tiempo real de stdout de otro proceso en Python Interceptando la salida estándar de un subproceso mientras se está ejecutando ¿Cómo puedo obtener información en tiempo real de un subproceso? Abrir en python […]

El progtwig se atasca al usar subprocess.Popen () o subprocess.check_call ()

Quiero ejecutar un progtwig desde Python y encontrar su uso de memoria. Para ello estoy usando: l=[‘./a.out’,”,’out.txt’] p=subprocess.Popen(l,shell=False,stdout = subprocess.PIPE, stderr = subprocess.PIPE) p.wait() Res= getrusage(resource.RUSAGE_CHILDREN) print Res.ru_maxrss También intenté usar check_call(l,shell=False,stdout = subprocess.PIPE, stderr = subprocess.PIPE) y eliminar p.wait pero el problema es que el progtwig se está atascando en p.wait () cuando se […]

subprocess.Popen () redireccionamiento de IO

Intentando redirigir la salida de un subproceso a un archivo. server.py: while 1: print “Count ” + str(count) sys.stdout.flush() count = count + 1 time.sleep(1) Laucher cmd = ‘./server.py >temp.txt’ args = shlex.split(cmd) server = subprocess.Popen( args ) La salida aparece en pantalla, temp.txt permanece vacío. ¿Qué estoy haciendo mal? Como fondo, estoy tratando de […]