Articles of tubo de

Uso del subproceso de Python para mostrar la salida en la nueva ventana de Xterm

Estoy tratando de generar información diferente en dos terminales desde el mismo script de Python (como este compañero ). La forma en que mi investigación ha parecido apuntar es abrir una nueva ventana xterm usando subprocess.Popen y ejecutando cat para mostrar la entrada estándar del terminal en la ventana. Luego escribiría la información necesaria al […]

Manteniendo abierta una tubería a un proceso.

Tengo una app que lee cosas de stdin y devuelve, después de una nueva línea, resultados en stdout Un ejemplo simple (estúpido): $ app Expand[(x+1)^2] x^2 + 2*x + 1 100 – 4 96 Abrir y cerrar la app requiere mucha inicialización y limpieza (es una interfaz con un sistema de álgebra computacional), por lo […]

Los bloques de procesamiento de tuberías de multiprocesamiento incluso cuando el proceso hijo está inactivo

Al leer varias preguntas sobre este tema, entiendo ahora que el proceso secundario hereda los descriptores de archivo del proceso principal. Lo que hará más difícil que un niño reciba un EOFError cuando un padre cierra la conexión. Pero mi situación es al revés, y no entiendo el problema al que me enfrento. Tengo un […]

Shell shell con subproceso en Python

Leí todos los hilos que encontré en StackOverflow al invocar comandos de shell de Python usando subprocess , pero no pude encontrar una respuesta que se aplique a mi situación a continuación: Me gustaría hacer lo siguiente desde Python: Ejecute el comando shell command_1 . Recoge la salida en la variable result_1 Shell canalización result_1 […]

Expresando pandas subconjunto utilizando tubería.

Tengo un dataframe que subcontrato de esta manera: abxy 0 1 2 3 -1 1 2 4 6 -2 2 3 6 6 -3 3 4 8 3 -4 df = df[(df.a >= 2) & (df.b <= 8)] df = df.groupby(df.x).mean() ¿Cómo expreso esto usando el operador de tubería pandas? df = (df .pipe((xa > […]

Ejecutando subproceso python a través de git hook

Estoy ejecutando Gitolite sobre el repository de Git y tengo un enlace de post-recepción escrito en Python. Necesito ejecutar el comando “git” en el directorio del repository de git. Hay pocas líneas de código: proc = subprocess.Popen([‘git’, ‘log’, ‘-n1′], cwd=’/home/git/repos/testing.git’ stdout=subprocess.PIPE, stderr=subprocess.PIPE) proc.communicate() Después de hacer un nuevo compromiso y empujar al repository, los scripts […]

No locking de lectura en os.pipe en Windows

Esta pregunta: ¿Cómo leer desde un os.pipe () sin ser bloqueado? – muestra una solución sobre cómo verificar si os.pipe tiene datos para Linux, y para esto necesita poner la canalización en modo no bloqueante: import os, fcntl fcntl.fcntl(thePipe, fcntl.F_SETFL, os.O_NONBLOCK) En Windows tenemos esto: ImportError: No module named fcntl Pero os.pipe está allí: >>> […]

El script de Python canalizado toma el 100% de la CPU cuando se lee de una tubería rota

Tengo dos scripts de Python que se ejecutan en una máquina Ubuntu Linux. El primero envía toda su salida a stdout, el segundo lee desde stdin. Están conectados por una tubería simple, es decir, algo como esto: ./step1.py | ./step2.py Lo que hace step2 es que lee líneas de entrada en un bucle infinito y […]

¿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 […]

Los subprocesos de Python experimentan un retraso misterioso en la recepción de EOF estándar

Reduje un problema que estaba viendo en mi solicitud al siguiente caso de prueba. En este código, un proceso principal genera simultáneamente 2 (puede generar más) subprocesos que leen un gran mensaje del padre sobre la entrada estándar, duermen durante 5 segundos y escriben algo. Sin embargo, en algún lugar ocurre una espera inesperada, lo […]