के साथ अजगर का उपयोग करना मैं अजगर के साथ उपप्रोसेसेस का उपयोग करने के लिए संघर्ष कर रहा हूं। यहाँ मेरी काम है:सबप्रोसेस पॉपन
- कमांड लाइन के माध्यम से एक API शुरू (इस कमांड लाइन पर किसी भी तर्क से चल रहा है से अलग नहीं होना चाहिए)
- सत्यापित करें मेरी एपीआई आ गया है। ऐसा करने का सबसे आसान तरीका मानक आउटपुट करना होगा।
- एपीआई के खिलाफ एक आदेश चलाएं। एक कमांड प्रॉम्प्ट प्रकट होता है जब मैं एक नया आदेश
- चलाने के लिए आदेश कम्प्लिट्स मानक बाहर (एपीआई प्रवेश का समर्थन नहीं करता)
पोलिंग के द्वारा सत्यापित करें मैं अब तक क्या प्रयास किया है में सक्षम हूँ:
1 मैं Popen का उपयोग कर यहाँ अटक गया हूँ। मैं समझता हूं कि अगर मैं subprocess.call("put command here")
का उपयोग करता हूं तो यह काम करता है। मैं करने के लिए कुछ इसी तरह इस्तेमाल करने की कोशिश करना चाहता था:
import subprocess
def run_command(command):
p = subprocess.Popen(command, shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
जहाँ मैं run_command("insert command here")
का उपयोग, लेकिन यह कुछ नहीं करता है।
2. के संबंध में मुझे लगता है कि इस सवाल का जवाब यहाँ के समान होना चाहिए: Running shell command from Python and capturing the output, लेकिन जैसा कि मैंने 1. काम करने के लिए नहीं मिल सकता है, मुझे लगता है कि अभी तक प्रयास नहीं किया है।
बस इसे जोड़ने के लिए, AFAICT, उपप्रोसेसर मॉड्यूल वास्तव में उन कार्यों के लिए तैयार है जो उनके प्रारंभिक इनपुट के साथ चलते हैं और फिर पूरा करते हैं (जैसे किसी फ़ंक्शन पर कॉल करना)। यदि आपको आगे और पीछे की आवश्यकता है (उदा। इंटरैक्टिव टर्मिनल उपयोगिता के लिए) तो Pexpect * निश्चित रूप से * जाने का तरीका है। – TimStaley