2009-07-14 8 views
8

में लगातार शेल वेरिएबल्स मैं पाइथन सबप्रोसेस मॉड्यूल का उपयोग करके कमांड की एक श्रृंखला निष्पादित करने की कोशिश कर रहा हूं, हालांकि मुझे उन्हें चलाने से पहले निर्यात के साथ खोल चर सेट करने की आवश्यकता है। बेशक शेल लगातार प्रतीत नहीं होता है, इसलिए जब मैं कमांड चलाता हूं तो बाद में उन शैल चर खो जाते हैं।पायथन: सबप्रोसेस

क्या इस बारे में जाने का कोई तरीका है? मैं एक/bin/sh प्रक्रिया बना सकता हूं, लेकिन इसके तहत चलने वाले आदेशों के निकास कोड कैसे प्राप्त किए जाएंगे?

उत्तर

13

subprocess.Popen एक वैकल्पिक नामित तर्क env लेता है जो सबप्रोसेस के पर्यावरण (जिसे आप "शैल चर" के रूप में वर्णित कर रहे हैं) के रूप में उपयोग करने के लिए एक शब्दकोश है। एक नियम तैयार करें जिसकी आपको आवश्यकता है (आप os.environ की एक प्रति के साथ शुरू कर सकते हैं और जिसकी आपको आवश्यकता है उसे बदलें) और इसे आपके द्वारा किए जाने वाले सभी subprocess.Popen कॉलों को पास करें।

+0

बिल्कुल सही, धन्यवाद। – PeterBelm

+0

@ पीटरबेल्म, आपका स्वागत है! –

5

एलेक्स बिल्कुल सही है। उदाहरण देने के लिए

current_env=environ.copy() 
current_env["XXX"] = "SOMETHING" #If you want to change some env variable 
subProcess.Popen("command_n_args", env=current_env) 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^