दिलचस्प पोस्ट
मैं एक सूची में फ़ाइल लाइन-बाय-लाइन कैसे पढ़ूं? आईफोन के ऑनस्क्रीन कीबोर्ड की ऊंचाई क्या है? एचटीएमएल / जावास्क्रिप्ट: एसआरकॉम सेट के साथ एक स्क्रिप्ट टैग में लोड किए गए जेएसओएन डेटा का उपयोग कैसे करें पायथन में इकाई परीक्षण लेखन: मैं कैसे शुरू करूं? एंड्रॉइड: फ़ाइल को स्थायी रूप से सहेजें (स्पष्ट डेटा / अनइंस्टॉल के बाद भी) जावा में instanceof का उपयोग करने का प्रदर्शन प्रभाव कंसोल अनुप्रयोग में एक छवि प्रदर्शित करें खिड़कियों पर क्वल्ट 5 (WId से) पर एचडब्ल्यूएनडी प्राप्त करें क्या <STYLE> को एक HTML दस्तावेज़ के <HEAD> में होना चाहिए? पांडों में सेटिंगविथकॉपी चेतावनी से निपटने के लिए कैसे? क्या विंडोज पर एक परमाणु फाइल का नाम बदलना (ओवरराइट के साथ) संभव है? रिक्त स्थान के साथ वातावरण चर कैसे सेट करें? डेटा-छवि एट्रर द्वारा सीएसएस सेट पृष्ठभूमि-छवि विकर्ण पर मूल्य कैसे निर्दिष्ट करें? जीसीसी -4 4.2 बाहर निकलने की स्थिति 1 के साथ विफल

पायथन के साथ पायथन उपप्रोसेस कमांड

मैं subprocess.check_output() ps -A | grep 'process_name' साथ उपयोग करना चाहता हूं ps -A | grep 'process_name' मैंने विभिन्न समाधानों की कोशिश की लेकिन अब तक कुछ भी काम नहीं किया। कोई मुझे मार्गदर्शन कैसे कर सकता है?

वेब के समाधान से एकत्रित समाधान "पायथन के साथ पायथन उपप्रोसेस कमांड"

subprocess मॉड्यूल के साथ एक पाइप का उपयोग करने के लिए, आपको shell=True पास करना होगा

हालांकि, यह वास्तव में विभिन्न कारणों से उचित नहीं है, जो कम से कम सुरक्षा नहीं है। इसके बजाय, ps और grep प्रक्रियाओं को अलग से बनायें, और एक से दूसरे में आउटपुट को पाइप करें, जैसे:

 ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE) output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout) ps.wait() 

आपके विशेष मामले में, हालांकि, सरल समाधान को str.findstr.find subprocess.check_output(('ps', '-A')) str.find और फिर str.find पर str.find

या आप सबप्रोसेस ऑब्जेक्ट्स पर हमेशा संवाद विधि का उपयोग कर सकते हैं।

 cmd = "ps -A|grep 'process_name'" ps = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT) output = ps.communicate()[0] print output 

मानक आउटपुट और मानक त्रुटि को ट्यूपल में विधि रिटर्न पर संवाद करें।

उपप्रोसेस का उपयोग कर एक पाइपलाइन स्थापित करने पर प्रलेख देखें: http://docs.python.org/2/library/subprocess.html#replacing-shell-pipeline

मैंने निम्न कोड उदाहरण का परीक्षण नहीं किया है लेकिन यह लगभग वही होना चाहिए जो आप चाहते हैं:

 query = "process_name" ps_process = Popen(["ps", "-A"], stdout=PIPE) grep_process = Popen(["grep", query], stdin=ps_process.stdout, stdout=PIPE) ps_process.stdout.close() # Allow ps_process to receive a SIGPIPE if grep_process exits. output = grep_process.communicate()[0] 

इसके अलावा, 'ps -A | grep 'process_name' बजाय 'pgrep' कमांड का उपयोग करने का प्रयास करें 'ps -A | grep 'process_name'

आप sh.py में पाइप कार्यक्षमता की कोशिश कर सकते हैं:

 import sh print sh.grep(sh.ps("-ax"), "process_name") 

तुम कोशिश कर सकते हो

 check_output(["sh", "-c", "ps", "-A", "|", "grep", "process_name"]) 

या

 check_output(["bash", "-c", "ps", "-A", "|", "grep", "process_name"])