मैं निम्न पंक्ति पर उपप्रक्रिया उपयोग करना चाहते हैं:पायथन उपप्रोसेस: तीन बार पाइप का उपयोग कैसे करें?
convert ../loxie-orig.png bmp:- | mkbitmap -f 2 -s 2 -t 0.48 | potrace -t 5 --progress -s -o ../DSC00232.svg
मैं अन्य पदों the subprocess documentation के लिए, लेकिन उदाहरण हम केवल दो बार पाइप का प्रयोग धन्यवाद पाया।
तो, मैं तीन आदेशों की दो के लिए कोशिश करते हैं और यह काम करता है
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]
तुम मुझे तीसरे आदेश के लिए मदद कर सकते हैं?
बहुत बहुत धन्यवाद।
क्या आप एक ही प्रक्रिया के साथ तीसरे आदेश के लिए इसे फिर से कोशिश? –
आपने ऐसा क्यों नहीं किया है जिसने आपने काम किया है? एक पाइप में सभी पाइप एक प्रक्रिया के stdout एक दूसरे को stdin करने के लिए हुक अप है। – Dunes
मुझे नहीं पता कि मुझे पी 2 को बंद करना है और आउटपुट को कैसे कोड करना है ... – Zorkzyd