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 […]
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 […]
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, […]
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 […]
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 […]
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 […]
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 […]
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 […]
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?
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 […]