से लिनक्स कमांड चला रहा है मुझे इस लिनक्स कमांड को पायथन से चलाने और आउटपुट को एक चर में असाइन करने की आवश्यकता है।पायथन
ps -ef | grep rtptransmit | grep -v grep
मैंने ऐसा करने के लिए पायथन कमांड लाइब्रेरी का उपयोग करने का प्रयास किया है।
import commands
a = commands.getoutput('ps -ef | grep rtptransmit | grep -v grep')
लेकिन कट ऑफ का अंत हो जाता है। उत्पादन मैं मिलता है:
'nvr 20714 20711 0 10:39 ? 00:00:00 /opt/americandynamics/venvr/bin/rtptransmit setup_req db=media camera=6 stream=video substream=1 client_a'
लेकिन अपेक्षित आउटपुट है:
nvr 20714 20711 0 10:39 ? 00:00:00 /opt/americandynamics/venvr/bin/rtptransmit setup_req db=media camera=6 stream=video substream=1 client_address=192.168.200.179 client_rtp_port=6970 override_lockout=1 clienttype=1
किसी को भी काट होने से उत्पादन को रोकने के लिए या किसी को भी किसी अन्य विधि का सुझाव दे सकता है पता है?
-1 'grep' और 'shell = True' के बेकार उपयोग के लिए। – lunaryorn
यदि आप कमांड में पाइप का उपयोग करना चाहते हैं तो 'shell' की आवश्यकता है। 'Grep' के बारे में, मैंने वास्तव में सिर्फ प्रश्न से कमांड की प्रतिलिपि बनाई और चिपकाया। मुझे लगता है कि दूसरा 'grep' मुझे संदेह है क्योंकि कभी-कभी' grep' कमांड जिसे हम निष्पादित करते हैं, वह भी grep-ed लगता है और इसलिए इसे हटाने की आवश्यकता है। यह वास्तव में 'grep [r] tptransmit' – fajran
का उपयोग करके टाला जा सकता है मुझे पता है कि कमांड में पाइप का उपयोग करने के लिए' shell = True' की आवश्यकता है, और दूसरा 'grep' पहले' grep' कमांड को हटाने के लिए है फ़िल्टर की गई प्रक्रिया सूची। लेकिन दोनों, इस मामले में पाइप और 'grep' अनिवार्य हैं। – lunaryorn