मैं एक साधारण पायथन स्क्रिप्ट पर काम कर रहा हूं जो कुछ कमांड निष्पादित करने के लिए subprocess
और/या os
का उपयोग कर सकता है, जो ठीक काम कर रहा है।सीडी टर्मिनल किसी दिए गए निर्देशिका में?
हालांकि, जब स्क्रिप्ट निकलती है तो मैं वास्तविक टर्मिनल (इस मामले में ओएस एक्स) को बाहर निकलने पर cd
करना चाहता हूं, इसलिए नई फाइलें निर्देशिका में उपयोग करने के लिए तैयार हैं जहां बनाई गई हैं। सभी निम्नलिखित (subprocess.Popen
, os.system
, os.chdir
) (यानी वे लक्ष्य निर्देशिका में सामान पर अमल) जो मैं चाहता से भीतर स्क्रिप्ट कर सकते हैं, लेकिन बाहर निकलने पर स्क्रिप्ट के अपने निर्देशिका, नहीं लक्ष्य पर टर्मिनल छोड़ निर्देशिका।
मैं इसे प्राप्त करने के लिए अस्थायी फ़ाइल में एक शेल स्क्रिप्ट लिखने से बचना चाहता हूं, अगर यह संभव है तो यह संभव है?
धन्यवाद - मैं फिर से लिखूंगा एक शेल स्क्रिप्ट के रूप में, और इसके बजाय पाइथन को कॉल करें :-) –
आपको पाइथन दुभाषिया को चारों ओर लटकने की आवश्यकता नहीं है। आपको बस प्रक्रिया के माहौल को जिस तरह से आप चाहते हैं (जैसे 'os.chdir() ') और फिर' os.execv()' एक नया खोल प्राप्त करने की आवश्यकता है। हां, आपके पास अभी भी एक अधीनस्थ खोल चलाना होगा, लेकिन पायथन दुभाषिया को बदल दिया जाएगा। http://docs.python.org/library/os.html#os.execv – msw
@msw: मैं कभी भी विशेष रूप से गोले के साथ सभी प्लेटफॉर्म पर विश्वसनीय रूप से इसे खींचने में सक्षम नहीं हूं (विशेष रूप से शक्तियां), लेकिन मेरे पास होना चाहिए सलाह दिया कि। –