मैं एक पायथन स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो हमारे सॉफ़्टवेयर को संकुल करता है। इस स्क्रिप्ट को हमारे उत्पाद को बनाने और इसे पैकेज करने की आवश्यकता है। वर्तमान में हमारे पास अन्य स्क्रिप्ट हैं जो प्रत्येक टुकड़े को अलग-अलग करते हैं जिसमें सीएसएच, और पर्ल स्क्रिप्ट शामिल हैं। ऐसी एक स्क्रिप्ट इस प्रकार है:क्या सबप्रोसेस के साथ उप उपप्रोसेस के साथ संवाद करना संभव है। पोपेन?
sudo mod args
जहां मॉड एक पर्ल स्क्रिप्ट है; तो पाइथन में मैं
proc = Popen(['sudo', 'mod', '-p', '-c', 'noresource', '-u', 'dtt', '-Q'], stderr=PIPE, stdout=PIPE, stdin=PIPE)
समस्या यह है कि इस मॉड स्क्रिप्ट के कुछ प्रश्नों के उत्तर की आवश्यकता है। इसके लिए मैंने सोचा कि पारंपरिक
(stdout, stderr) = proc.communicate(input='y')
काम करेगा। मुझे नहीं लगता कि यह काम कर रहा है क्योंकि पॉपन जिस प्रक्रिया को नियंत्रित कर रहा है वह सूडो है, न कि मॉड स्क्रिप्ट जो सवाल पूछ रहा है। क्या मॉड स्क्रिप्ट के साथ संवाद करने का कोई तरीका है और अभी भी इसे सूडो के माध्यम से चलाएं?
मैंने pexpect की कोशिश की और यह "अपेक्षित" के रूप में काम किया। धन्यवाद! – darrickc