Articles of subproceso

Capturar entradas a subprocess.run ()

Tengo un archivo exe de línea de comandos interactivo en Windows, escrito por otra persona. Cuando el progtwig tiene una excepción, termina y todas mis entradas al progtwig se pierden. Así que estoy escribiendo un progtwig python que llama a un subproceso de locking con subprocess.run() y captura todas las entradas a stdin para copia […]

Pasando comillas dobles a un comando de Python usando el módulo de subproceso

Tengo un progtwig de línea de comandos que estoy usando desde un script de Python para encargarme de sellar un número de comstackción en un ejecutable. Este es el progtwig de línea de comandos: http://www.elphin.com/downloads/stampver/ Mi problema es que el progtwig toma comillas dobles (“) en uno de sus argumentos y el módulo de subproceso […]

FileNotFoundError: Das System kann die angegebene Fecha de publicación

Actualmente estoy aprendiendo a usar el subprocess del módulo y acabo de comenzar con mi nuevo libro. Al instante, recibí un mensaje de error que no entiendo. Traceback (most recent call last): File “D:/me/Python/subprocess.py”, line 3, in proc = subprocess.Popen([‘echo’, ‘Hello there’], stdout=subprocess.PIPE) File “C:\Python34\lib\subprocess.py”, line 859, in __init__ restre_signals, start_new_session) File “C:\Python34\lib\subprocess.py”, line 1112, […]

¿Hay una manera de sondear un identificador de archivo devuelto desde subprocess.Popen?

Di que escribo esto: from subprocessing import Popen, STDOUT, PIPE p = Popen([“myproc”], stderr=STDOUT, stdout=PIPE) Ahora si lo hago line = p.stdout.readline() mi progtwig espera hasta que el subproceso emita la siguiente línea. ¿Hay alguna magia que pueda hacer para p.stdout para poder leer la salida si está allí, pero continuar de otra manera? Estoy […]

Python: ejecución de subproceso en paralelo

Tengo el siguiente código que escribe md5sums en un archivo de registro for file in files_output: p=subprocess.Popen([‘md5sum’,file],stdout=logfile) p.wait() ¿Se escribirán en paralelo? es decir, si md5sum toma mucho tiempo para uno de los archivos, ¿se iniciará otro antes de esperar a que se complete uno anterior? Si la respuesta a lo anterior es afirmativa, ¿puedo […]

Captura de salida como tty en python

Tengo un ejecutable que requiere un tty (como stdin y stderr), y quiero poder probarlo. Quiero ingresar stdin, y capturar la salida de stdout y stderr, aquí hay un ejemplo de script: # test.py import sys print(“stdin: {}”.format(sys.stdin.isatty())) print(“stdout: {}”.format(sys.stdout.isatty())) print(“stderr: {}”.format(sys.stderr.isatty())) sys.stdout.flush() line = sys.stdin.readline() sys.stderr.write(“read from stdin: {}”.format(line)) sys.stderr.flush() Puedo ejecutar esto sin […]

¿Los subprocesos de Python no salen correctamente?

No creo que esté entendiendo correctamente el subproceso de Python, pero aquí hay un ejemplo simple para ilustrar un punto sobre el que estoy confundido: #!/usr/bin/env python import subprocess lookup_server = subprocess.Popen(“nc -l 5050”, shell=True) lookup_client = subprocess.Popen(“nc localhost 5050”, shell=True, stdin=subprocess.PIPE) print lookup_client.poll() lookup_client.stdin.write(“magic\n”) print lookup_client.poll() lookup_client.send_signal(subprocess.signal.SIGINT) print lookup_client.poll() lookup_server.wait() print “Lookup server terminated […]

Recibiendo mensaje de progreso de un subproceso

Quiero comenzar un progtwig que necesita varios minutos para completar. Durante este tiempo, quiero leer el mensaje de progreso del progtwig (que está impreso en la salida estándar). El problema es que no puedo encontrar una manera de leer su salida durante su ejecución. La única función que encontré para leer la salida de un […]

¿Cómo evitar que SIGINT pase al subproceso en python?

Mi script de python intercepta la señal SIGINT con el módulo de proceso de señal para evitar la salida prematura, pero esta señal se pasa a un subproceso que abro con Popen. ¿Hay alguna forma de evitar pasar esta señal al subproceso para que no se salga prematuramente cuando el usuario presiona ctrl-c?

Iniciando gnome-terminal con argumentos

Usando Python, me gustaría comenzar un proceso en una nueva ventana de terminal, para mostrar al usuario lo que está sucediendo y ya que hay más de un proceso involucrado. Intenté hacer: >>> import subprocess >>> subprocess.Popen([‘gnome-terminal’]) Y esto funciona como quiero, se abre una nueva ventana. Pero, ¿cómo le paso argumentos a esto? Al […]