तो मैं एक दिया मशीन पर शीर्ष 3 सीपीयू "गहन" प्रक्रियाओं के लिए क्वेरी करने के लिए कोशिश कर रहा हूँ, और मैं यह करने के लिए इस शेल कमांड पाया: ps -eo pcpu,pid,user,args | sort -k 1 -r | head -3
पाइपिंग
मैं उपयोग करना चाहते हैं यह डेटा एक पायथन लिपि के अंदर है, इसलिए मुझे उपरोक्त कमांड के आउटपुट को subprocess
मॉड्यूल के माध्यम से कैप्चर करने में सक्षम होना चाहिए। निम्नलिखित काम करता है, लेकिन सिर्फ एक विशाल स्ट्रिंग के बाद से मैं इसे शीर्ष 3 करने के लिए सीमित नहीं कर रहा हूँ रिटर्न:
psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
मैं काफी यकीन नहीं है कि यह कैसे काम करता है subprocess.check_output
.. एक अल्प प्रयास मैंने कोशिश में:
subprocess.check_output(['ps', '-eo', 'pcpu,user,args', '|', 'sort', '-k', '1', '-r', '|', 'head', '-3'])
कौन सा मुझे एक त्रुटि देता है: ps: illegal argument: |
मैं कैसे पायथन के अंदर पाइप |
प्रतीक का उपयोग करते हैं, या किसी अन्य का उपयोग psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
द्वारा लौटाई गई विशाल स्ट्रिंग पर पार्सिंग की अविश्वसनीय मात्रा के बिना सॉर्टिंग करने का तरीका?
धन्यवाद! सादर, -kstruct
आप पाइप के साथ अपने कोड के साथ एक खोल स्क्रिप्ट लिख सकता है, तो उस उपप्रक्रिया मॉड्यूल से फोन – jedwards