दिलचस्प पोस्ट
सी # में होम डायरेक्टरी का पथ प्राप्त करना? नेटवर्क प्रकार प्राप्त करें git क्लोन प्रॉक्सी को हल नहीं कर सकता यदि कोई त्रुटि उत्पन्न होती है, तो क्या कोई प्रयोग कथन एक डेटाबेस लेन-देन रोलबैक करेगा? आप आईफोन पर UIPickerView कैसे हटाना चाहते हैं? कैसे gradle में वर्तमान स्वाद पाने के लिए ब्रैकेट (“) और डॉट (`.`) नोटेशन के बीच अंतर वेक्टर विकास के बारे में कैसे एकता में एक GameObject serialize और बचाने के लिए ToString से पहले की नल के लिए जांच रहा है () जावास्क्रिप्ट में, "0" झूठी के बराबर क्यों है, लेकिन जब 'if' द्वारा जांच की जाती है तो यह स्वयं के द्वारा गलत नहीं है? एसक्यूएललेमी में जटिल विदेशी कुंजी बाधा एंड्रॉइड में दो स्थानों के बीच की दूरी क्या है? इसका उद्देश्य क्या है: (बृहदान्त्र) जीएनयू बैश निर्मित? अजगर में यूटीसी टाइमस्टैम्प को datetime.date परिवर्तित करना

अजगर के सबप्रोसेक के लिए एक अच्छा समकक्ष क्या है। चेकमार्क stdout की सामग्री देता है?

मुझे एक अच्छा तरीका चाहिए जो कि CalledProcessError के इंटरफेस से मेल खाता है। CalledProcessError – यानी, CalledProcessError किया गया CalledProcessError तब फेंकता है जब यह विफल हो जाता है, तुल्यकालिक है, और सी – लेकिन कमांड के रिटर्न कोड को लौटने के बजाय (अगर यह भी करता है) रिटर्न प्रोग्राम का आउटपुट, या तो केवल स्टडआउट, या (स्टडआउट, स्टेडरर) का ट्यूपल।

क्या कोई ऐसा तरीका है जो यह करता है?

Solutions Collecting From Web of "अजगर के सबप्रोसेक के लिए एक अच्छा समकक्ष क्या है। चेकमार्क stdout की सामग्री देता है?"

पायथन 2.7+

 from subprocess import check_output as qx 

पायथन <2.7

उपप्रोसेस से :

 import subprocess def check_output(*popenargs, **kwargs): if 'stdout' in kwargs: raise ValueError('stdout argument not allowed, it will be overridden.') process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs) output, unused_err = process.communicate() retcode = process.poll() if retcode: cmd = kwargs.get("args") if cmd is None: cmd = popenargs[0] raise subprocess.CalledProcessError(retcode, cmd, output=output) return output class CalledProcessError(Exception): def __init__(self, returncode, cmd, output=None): self.returncode = returncode self.cmd = cmd self.output = output def __str__(self): return "Command '%s' returned non-zero exit status %d" % ( self.cmd, self.returncode) # overwrite CalledProcessError due to `output` keyword might be not available subprocess.CalledProcessError = CalledProcessError 

संभव check_output() कार्यान्वयन के अन्य उदाहरण के लिए एक स्ट्रिंग के रूप में सिस्टम कमान आउटपुट कैप्चरिंग भी देखें

मैं एक टिप्पणी में स्वरूपण नहीं कर सकता, इसलिए यह जेएफ सेबस्टियन के जवाब के जवाब में है

मैंने यह बहुत उपयोगी पाया इसलिए मुझे लगा कि मैं इस उत्तर में जोड़ूंगा। मैं संस्करण की जांच किए बिना कोड में मूल रूप से काम करने में सक्षम होना चाहता था। यह जो मैंने किया है…

मैंने उपरोक्त कोड को 'सबप्रोसेक_कोम्पाटपा' नामक एक फ़ाइल में डाल दिया तब कोड में जहां मैंने उपप्रोसेस का उपयोग किया था I

 import sys if sys.version_info < (2, 7): import subprocess_compat subprocess.check_output = subprocess_compat.check_output 

अब कोड में कहीं भी मैं 'सबप्रोसेस। चेक' आउटपुट '' कॉल करना चाहूंगा, और मैं यह चाहता हूं कि अजगर का मैं किस संस्करण का उपयोग कर रहा हूं।

यह फ़ंक्शन स्ट्रिंग की सूची के रूप में टर्मिनल आउटपुट देता है।

 import subprocess,sys def output(cmd): cmd_l = cmd.split() output = subprocess.Popen(cmd_l, stdout=subprocess.PIPE).communicate()[0] output = output.decode("utf-8") return (output)