Mi piacerebbe usare sottoprocesso sulla riga seguente:Sottoprocesso Python: come usare i tubi tre volte?
convert ../loxie-orig.png bmp:- | mkbitmap -f 2 -s 2 -t 0.48 | potrace -t 5 --progress -s -o ../DSC00232.svg
ho trovato grazie ad altri posti the subprocess documentation ma nell'esempio usiamo solo il tubo due volte.
Così, provo per due dei tre comandi e funziona
p1 = subprocess.Popen(['convert', fileIn, 'bmp:-'], stdout=subprocess.PIPE)
# p2 = subprocess.Popen(['mkbitmap', '-f', '2', '-s', '2', '-t', '0.48'], stdout=subprocess.PIPE)
p3 = subprocess.Popen(['potrace', '-t' , '5', '-s' , '-o', fileOut], stdin=p1.stdout,stdout=subprocess.PIPE)
p1.stdout.close() # Allow p1 to receive a SIGPIPE if p3 exits.
output = p3.communicate()[0]
mi potete aiutare per il terzo comando?
Grazie mille.
hai provato di nuovo per la terza comando con lo stesso processo? –
Perché non ha funzionato quello che hai provato? Tutto il pipe fa in una shell è lo stdout di un processo per stdinne un altro. – Dunes
Non so dove devo chiudere p2 e come codificare l'output ... – Zorkzyd