私は次の行に、サブプロセスを使用したい:Pythonのサブプロセス:パイプを3回使う方法?
convert ../loxie-orig.png bmp:- | mkbitmap -f 2 -s 2 -t 0.48 | potrace -t 5 --progress -s -o ../DSC00232.svg
私は他の記事the subprocess documentationに感謝を発見したが、一例では、我々は二回しかパイプを使用しています。
だから、私は三つのコマンドの2のために試してみて、それが
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]
は、あなたが3番目のコマンドのために私を助けることができる作品?
ありがとうございました。
あなたは、同じプロセスで3番目のコマンドのために再びそれを試してみましたか? –
あなたが試したことがなぜうまくいかなかったのですか?シェル内のすべてのパイプは、あるプロセスのstdoutを別のプロセスのstdoutに接続します。 – Dunes
私はp2をどこに閉じなければならないのかわかりませんし、出力をコード化する方法もありません。 – Zorkzyd