के साथ वर्तमान निर्देशिका के ऊपर पाइथन ओएस मॉड्यूल खुली फ़ाइल ओएस मॉड्यूल के लिए प्रलेखन में ऐसी फ़ाइल नहीं खोलती है जो किसी उपनिर्देशिका में नहीं है या वर्तमान निर्देशिका जो स्क्रिप्ट चल रही है, पूरा रास्ता। मेरी निर्देशिका संरचना इस तरह दिखती है।सापेक्ष पथ
/home/matt/project/dir1/cgi-bin/script.py
/home/matt/project/fileIwantToOpen.txt
open("../../fileIwantToOpen.txt","r")
एक फ़ाइल को त्रुटि नहीं मिली है। लेकिन अगर मैं cgi-bin निर्देशिका में एक अजगर दुभाषिया शुरू करता हूं और open("../../fileIwantToOpen.txt","r")
कोशिश करता हूं तो यह काम करता है। मैं स्पष्ट पोर्टेबिलिटी कारणों के लिए पूर्ण पथ में हार्ड कोड नहीं चाहता हूं। क्या ओएस मॉड्यूल में विधियों का एक सेट है कि कर सकते हैं ऐसा करें?
हम्म। यह एक अनुमति त्रुटि हो सकती है, या CGI के लिए कार्यशील निर्देशिका आपके पायथन दुभाषिया के समान नहीं हो सकती है। सटीक त्रुटि संदेश मदद कर सकता है। इसके अलावा, अपने सीजीआई में, 'os.getcwd()' प्रिंट करें और देखें कि क्या कहता है। –
क्या आपकी सीजीआई स्क्रिप्ट एक क्रोट जेल में चल रही है? यदि ऐसा है, तो यह काम नहीं करेगा क्योंकि आप जेल से बच नहीं सकते हैं। –
@ एडम रोसेनफील्ड संख्या। @ जेसन मैं सचमुच सीजीआई-बिन निर्देशिका में पाइथन दुभाषिया चलाता हूं, इसलिए मुझे समझ में नहीं आता कि यह उस में कैसे काम करेगा और सीजीआई-बिन निर्देशिका में चल रही स्क्रिप्ट के अंदर नहीं। –