दिलचस्प पोस्ट
जीयूआई और विंडोज सर्विस कम्युनिकेशन मैं PHP में त्रुटि 404 कैसे बना सकता हूं? स्ट्रिंग इंडेक्स सीधा अपवाद जावा से बाहर Invoke () और BeginInvoke () के बीच अंतर क्या है WPF कॉम्बोबॉक्स: टेक्स्टबॉक्स और ड्रॉप-डाउनसूची में अलग टेम्पलेट Java.util.Scanner का उपयोग करके इनपुट की पुष्टि करना लैम्ब्डा अभिव्यक्ति में विदेशी लैप के इटरेटर वेरिएबल का उपयोग करना – क्यों विफल रहता है? NSString मान को छँटाई जा रही है जैसे NSInteger NSSortDescriptor का उपयोग कर रहा है परस्पर अनन्य जांच बक्से को फिर से बनाने के लिए setValueAt का उपयोग करना + = में सी और सी ++ का नतीजा क्या है? क्या अप्रयुक्त सीएसएस छवियों को डाउनलोड किया गया है? UI थ्रेड से जीयूआई अपडेट को फोर्स करें नाम से res / raw फ़ाइल को कैसे पढ़ा जाए Urllib2 का उपयोग करते हुए GET के बजाय एक पोस्ट कॉल बनाना ट्रैकिंग पिक्सेल का विकास करना

Python उपप्रक्रमित संवाद पद्धति का उपयोग करते समय निकास कोड कैसे प्राप्त करें?

पायथन की subprocess मॉड्यूल और communicate() विधि का उपयोग करते समय मैं कैसे बाहर निकलने का कोड प्राप्त करूं?

प्रासंगिक कोड:

 import subprocess as sp data = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE).communicate()[0] 

क्या मैं यह दूसरी तरह से कर रहा हूं?

वेब के समाधान से एकत्रित समाधान "Python उपप्रक्रमित संवाद पद्धति का उपयोग करते समय निकास कोड कैसे प्राप्त करें?"

Popen.communicate यह (*) किया है जब returncode विशेषता सेट कर 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

आपको सबसे पहले यह सुनिश्चित करना चाहिए कि प्रक्रिया पूरी हो गई है और रिटर्न कोड को। .wait विधि का उपयोग करके पढ़ा गया है। यह कोड वापस करेगा यदि आप इसे बाद में एक्सेस करना चाहते हैं, तो यह Popen ऑब्जेक्ट में .returncode रूप में संग्रहीत है।

exitcode = data.wait() । बाल प्रक्रिया को अवरुद्ध कर दिया जाएगा यदि वह मानक आउटपुट / त्रुटि के लिए लिखता है, और / या मानक इनपुट से पढ़ता है, और कोई साथी नहीं है

.poll() वापसी कोड को अपडेट कर देगा।

प्रयत्न

 child = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE) returnCode = child.poll() 

इसके अतिरिक्त, .poll() बाद कहा जाता है कि रिटर्न कोड ऑब्जेक्ट में child.returncode रूप में उपलब्ध है।