2010-06-30 10 views
5

मैं पाइथन में एक चर के लिए फ़ाइल के आउटपुट को कैसे पाइप करूं?मैं पाइथन में एक चर के लिए फ़ाइल के आउटपुट को कैसे पाइप करूं?

क्या यह संभव है? पाइथन में एक चर x में netstat के आउटपुट को पाइप करने के लिए कहें?

उत्तर

5

दो भागों:

शैल

netstat | python read_netstat.py 

अजगर read_netstat.py

import sys 
variable = sys.stdin.read() 

यही से उत्पादन पढ़ा जाएगा

विशेष रूप से खंड Replacing /bin/sh shell backquote देखना netst एक चर में में।

6

यह संभव है। देखें:

http://docs.python.org/library/subprocess.html#replacing-bin-sh-shell-backquote

अजगर 2.4 में और ऊपर:

from subprocess import * 
x = Popen(["netstat", "-x", "-y", "-z"], stdout=PIPE).communicate()[0] 
+1

क्या आप वाकई काम करते हैं? मुझे नहीं लगता कि बैकटिक्स पाइथन में खोल को बुलाते हैं और उनका उपयोग वैसे भी निराश होता है। –

+0

हैलो, लगा कि मैं इसे आजमाउंगा। कम से कम साइगविन का उपयोग करने की आवश्यकता होती है। बैकटीक्स के बिना मुझे मदद मिलती है मुझे वापस थूकना। >>> एक्स = पॉपन (["नेटस्टैट", "-ए", "-बी", "-e"], stdout = PIPE)। कम्यूनिकेट() [0] >>> x 'इंटरफेस सांख्यिकी \ आर \ n \ r \ n भेजा गया \ r \ n \ r \ n बाइट्स 6360 9 6584 4472 9983 \ r \ n यूनिकास्ट पैकेट 540296 2 9 7233 \ r \ n गैर-यूनिकास्ट पैकेट 1058608 338 \ r \ n डिस्कार्ड 0 0 \ r \ n त्रुटि 0 13 \ आर \ n अज्ञात प्रोटोकॉल 4405 \ r \ n ' – manifest

+0

इसे डीओएस में भी एक ही सौदे का प्रयास किया। बैक-टिक्स की आवश्यकता है। – manifest

2

subprocess मॉड्यूल पर एक नजर डालें। यह आपको नई प्रक्रियाएं शुरू करने, उनके साथ बातचीत करने और उनके आउटपुट को पढ़ने की अनुमति देता है।

output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0] 
संबंधित मुद्दे