2009-11-08 14 views
20

मुझे यकीन नहीं है कि subprocess.call() का वापसी मूल्य क्या है।subprocess.call() का वापसी मूल्य क्या है?

  • क्या मैं सुरक्षित रूप से शून्य मान मान सकता हूं कि हमेशा सफलतापूर्वक निष्पादित किया गया आदेश आदेश दिया जाएगा?

  • क्या शेल कमांड के बाहर निकलने के स्टॉप के बराबर वापसी मूल्य है?

उदाहरण के लिए, लिनक्स पर लगभग किसी भी कमांड के लिए कोड का निम्नलिखित भाग काम करेगा?

cmd = "foo.txt > bar.txt" 
ret = subprocess.call(cmd, shell=True) 
if ret != 0: 
    if ret < 0: 
     print "Killed by signal", -ret 
    else: 
     print "Command failed with return code", ret 
else: 
    print "SUCCESS!!" 

मुझे :-)

उत्तर

7

यह वापसी कोड है की आधिकारिक दस्तावेज की जांच कर सकते हैं, लेकिन यह उपप्रक्रिया क्या वापसी कोड का मतलब है के लेखक पर निर्भर है को ध्यान में रखना। सफलता की 0 की एक मजबूत संस्कृति है जिसका अर्थ है, लेकिन इसमें कुछ भी लागू नहीं है।

4

आप उन आदेशों की दया पर हैं जिन्हें आप कॉल करते हैं। इस पर विचार करें:

test.py

#!/usr/bin/env python 
success=False 
if not success: 
    exit() 

फिर अपने कोड (cmd = 'test.py' के साथ) चल रहा सफलता में परिणाम होगा !!

केवल इसलिए कि test.py गैर-शून्य मान को वापस करने के सम्मेलन के अनुरूप नहीं है जब यह सफल नहीं होता है।

संबंधित मुद्दे