क्या अजगर "पर्सन" में उपप्रोसेस कॉल करने का कोई तरीका है? मैं एक प्रोग्राम को बुला रहा हूं जिसमें कई बार लोड करने में कुछ समय लगता है। तो यह बहुत अच्छा होगा अगर मैं सिर्फ उस कार्यक्रम को खोल सकता हूं और इसे मारने के बिना इसके साथ संवाद कर सकता हूं।पर्सिस्टेंट पायथन सबप्रोसेस
मेरे अजगर स्क्रिप्ट के कार्टून संस्करण इस तरह दिखता है:
for text in textcollection:
myprocess = subprocess.Popen(["myexecutable"],
stdin = subprocess.PIPE, stdout = subprocess.PIPE,
stderr = None)
myoutputtext, err = myprocess.communicate(input=text)
मैं तो एक बड़े पाठ फ़ाइल में सभी शामिल होने और यह एक बार प्रसंस्करण प्रत्येक पाठ कार्रवाई करने के लिए की जरूरत है, एक विकल्प नहीं है।
अधिमानतः, इस
myprocess = subprocess.Popen(["myexecutable"],
stdin = subprocess.PIPE, stdout = subprocess.PIPE,
stderr = None) for text in textcollection:
for text in textcollection:
myoutputtext, err = myprocess.communicate(input=text)
जैसा कोई विकल्प जहां मैं इस प्रक्रिया को खुला छोड़ कर सकते हैं अगर, मैं वास्तव में यह सराहनीय होगा।
धन्यवाद! मुझे आपके समाधान को सबसे अच्छा पसंद है क्योंकि इसे किसी तृतीय पक्ष डाउनलोड की आवश्यकता नहीं है। दुर्भाग्य से, यह मेरे लिए काम नहीं करता है। कुछ चीजों को आजमाने के बाद, मुझे पूरा यकीन है कि यह जावा प्रोग्राम के साथ एक मुद्दा है जिसे मैं आपके समाधान के बजाय बुला रहा हूं, इसलिए आपका समाधान अच्छा है। – JasonMond
नीचे वोट क्यों? –
यह गलती से था। मेरा अपवर्तक निष्क्रिय है जब तक कि कुछ भी संपादित नहीं किया जाएगा, लेकिन मुझे सुधार करने या चोट पहुंचाने के लिए कुछ भी नहीं दिख रहा है। सही जवाब – hynekcer