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 […]
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 […]
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 […]
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’, […]
Quiero crear una tubería entre 3 comandos: cat = subprocess.Popen(“cat /etc/passwd”, stdout=subprocess.PIPE) grep = subprocess.Popen(“grep ””, stdin=cat.stdout, stdout=subprocess.PIPE) cut = subprocess.Popen(“cut -f 3 -d ‘:'”, stdin=grep.stdout, stdout=subprocess.PIPE) for line in cut.stdout: # process each line here Pero la documentación de Python dice: Use communicate() lugar de .stdin.write , .stdout.read o .stderr.read para evitar interlockings debido […]
Aparentemente, esto es casi un duplicado de ” Bad pipe filedescriptor cuando se lee desde stdin en python – Stack Overflow “; sin embargo, creo que este caso es un poco más complicado ( y no es específico de Windows, como lo fue la conclusión de ese hilo ). Actualmente estoy intentando experimentar con un […]
Quiero ejecutar el siguiente comando de shell en una secuencia de comandos de python: dom=myserver cat /etc/xen/$myserver.cfg | grep limited | cut -d= -f2 | tr -d \” Tengo esto: dom = myserver limit = subprocess.call([“cat /etc/xen/%s.cfg | grep limited | cut -d= -f2”, str(dom)]) subprocess.call([‘/root/bin/xen-limit’, str(dom), str(limit)]) No funciona, pero no sé por qué […]
Estoy tratando de controlar a distancia gpg a través de un progtwig python a través de POpen . Tengo un archivo que contiene datos encriptados que quiero descifrar, modificar y escribir en el disco re-encriptado. Actualmente, estoy almacenando la información descifrada en un archivo temporal (que shred cuando finaliza el progtwig). Luego realizo mis modificaciones […]
Esto se relaciona con mi otro problema de subprocesamiento múltiple de mensajes con wx.TextCtrl (o GTK + subyacente) , que después de corregir con las interacciones de la GUI desde el subproceso primario, me parece que viene al problema de almacenamiento en búfer del bloque de tuberías. Entonces, ¿cómo obtener salida espontánea del subprocess.stdout? Para […]
Estoy intentando hacer un IPC simple en Python de la siguiente manera: Un proceso de Python inicia otro con subprocess . El proceso hijo envía algunos datos a una tubería y el proceso padre los recibe. Aquí está mi implementación actual: # parent.py import pickle import os import subprocess import sys read_fd, write_fd = os.pipe() […]