Articles of pipe

Corrupción de datos en tuberías entre C ++ y Python

Estoy escribiendo un código que toma datos binarios de Python, lo canaliza a C ++, procesa los datos (en este caso, calcula una métrica de información mutua) y luego canaliza los resultados a python. Durante las pruebas, comprobé que todo funciona bien si los datos que envío son un conjunto de 2 matrices con dimensiones […]

cómo usar os.system () en python para ejecutar un orden de shell

En algún script de shell, debe confirmar “sí” para ejecutar el shell, bueno, una forma más fácil es usar “sí” y canalización, como esto yes | test.py luego, puede ejecutar el script de shell automáticamente sin responder “sí” nunca más. hoy, cuando uso esto en python al intentar: os.system (“yes | **. sh”), tengo un […]

¿Cómo proporcionar entrada a una llamada de subproceso python que espera un nombre de archivo, en lugar de una variable?

Estoy tratando de llamar a un script de shell (segment.sh) dentro de python. La syntax que produce resultados correctos en la consola es: > ./segment.sh ctb file.txt utf-8 0 Como puede verse, este script de shell espera un archivo de texto como entrada. Lo que estoy tratando de hacer es abrir el archivo y leer […]

Python subprocess.Popen PIPE y SIGPIPE

Mientras navegué por las publicaciones, encontré este ejemplo a continuación aquí . Se dice que proc1.stdout.close() es necesario para que se llame a la salida apropiada de proc1 , generando SIGPIPE . import subprocess proc1 = subprocess.Popen([‘ps’, ‘cax’], stdout=subprocess.PIPE) proc2 = subprocess.Popen([‘grep’, ‘python’], stdin=proc1.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE) proc1.stdout.close() # Allow proc1 to receive a SIGPIPE if […]

Python Popen colgando con psexec – resultados no deseados

Estoy teniendo un problema con subprocess.Popen y lo que creo que son tuberías. Tengo el siguiente bloque de código que funciona sin problemas el 100% del tiempo cuando se ejecuta desde el cli: p = subprocess.Popen(“psexec \\\\” + serverName.get() + ” cmd /c \ ver & \ echo %USERDOMAIN% & \ dir /a C:\pagefile.sys | […]

Pasa datos binarios entre procesos python

Necesito transferir datos binarios entre procesos Python en Linux de manera eficiente. Sin embargo no puedo encontrar una manera de pasarlo con tubería. Lo más cercano que conseguí fue pasarlo como una cadena, pero mantiene su forma binaria por alguna razón, así que me causa problemas. ciphertext, tag = cipher1.encrypt_and_digest(input().encode()) print(ciphertext) El texto cifrado es […]

evitar lecturas estándar inesperadas y bloquear en subproceso

Un caso simple que estoy tratando de resolver para todas las situaciones. Estoy ejecutando un subproceso para realizar una determinada tarea, y no espero que pida un stdin, pero en casos raros que ni siquiera puedo esperar, podría intentar leer. Me gustaría evitar que cuelgue en ese caso. Aquí hay un ejemplo clásico: import subprocess […]

¿Cómo leer desde stdin o desde un archivo si no se canalizan datos en Python?

Tengo un script de CLI y quiero que lea datos de un archivo. Debería poder leerlo de dos maneras: cat data.txt | ./my_script.py ./my_script.py data.txt —Un poco como grep , por ejemplo. Lo que yo sé: sys.argv y optparse me permiten leer cualquier argumento y opciones fácilmente. sys.stdin me dejó leer los datos introducidos fileinput […]

bloques – enviar entrada a la tubería de subproceso de Python

Estoy probando conductos de subprocesos con python. Soy consciente de que puedo hacer lo que hacen los progtwigs a continuación en Python directamente, pero ese no es el punto. Solo quiero probar la tubería para saber cómo usarla. Mi sistema es Linux Ubuntu 9.04 con el python 2.6 predeterminado. Comencé con este ejemplo de documentación […]

Bucle de proceso hijo de Python sobre la entrada estándar del proceso padre de Node.js

El progtwig primario My Node.js ejecuta un proceso Python secundario y le envía datos de texto; consulte aquí la implementación. Esto funciona bien, el proceso principal del nodo escribe datos como: child.stdin.setEncoding(‘utf-8’); child.stdin.write(data + ‘\r\n’); child.stdin.end(); el proceso hijo de Python lo repite: for line in sys.stdin: ofp.write(line) y devuelve los datos al padre: child.stdout.on(‘data’, […]