Popen.communicate
यह किए जाने पर returncode
विशेषता सेट करेगा (*)।
Popen.returncode
The child return code, set by poll() and wait() (and indirectly by communicate()).
A None value indicates that the process hasn’t terminated yet.
A negative value -N indicates that the child was terminated by signal N (Unix only).
तो आप बस कर सकते हैं (मैं इसे परीक्षण नहीं किया था, लेकिन यह काम करना चाहिए):
import subprocess as sp
child = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE)
streamdata = child.communicate()[0]
rc = child.returncode
(*) इसका कारण यह है रास्ते से होता है यहाँ प्रासंगिक दस्तावेज अनुभाग है यह कार्यान्वित किया गया है: बच्चे की धाराओं को पढ़ने के लिए थ्रेड सेट करने के बाद, यह केवल wait
पर कॉल करता है।
स्रोत
2011-04-12 07:29:23
इस उदाहरण ने मेरी मदद की, लेकिन यह अच्छा होगा अगर उदाहरणों ने एक अस्पष्ट संक्षेप के रूप में कुछ मानक आयात करने के "आयात उपप्रोसेस एसपी" पैटर्न नहीं किया। हालांकि यह इसके बाद वाले कोड से 8 वर्णों को ट्रिम करता है, यह समझना और पुन: उपयोग करना भी मुश्किल बनाता है। – uglycoyote
@uglycoyote कोई नियम नहीं है जो कहता है कि आपको कॉपी और पेस्ट करना है। बस इसे फिर से टाइप करें, हालांकि आप चाहते हैं, यह 4 लाइनों की तरह है। –
@uglycoyote आप इसे 'सबप्रोसेस आयात पॉपन' से कुछ भी संपादित करने के लिए संपादित कर सकते हैं और फिर 'सबप्रोसेस (या एसपी) के बजाय' पॉपन 'का उपयोग करें। जो मैं कहूंगा वह शायद पठनीयता बढ़ाता है और लाइनों को कम करता है – Mitch