चलें कहते हैं कि तुम एक मॉड्यूल जो"हमेशा मौजूदा मॉड्यूल से संबंधित" फ़ाइल पथ बनाते हैं?
myfile = open('test.txt', 'r')
शामिल और 'test.txt' फ़ाइल एक ही फ़ोल्डर में है। यदि आप मॉड्यूल चलाएंगे, तो फाइल सफलतापूर्वक खोली जाएगी। अब आइए कहें कि आप उस मॉड्यूल को किसी अन्य फ़ोल्डर से आयात करते हैं जो किसी अन्य फ़ोल्डर में है। उस मॉड्यूल के रूप में फ़ाइल को उसी फ़ोल्डर में नहीं खोजा जाएगा जहां वह कोड है। तो मॉड्यूल खोज फ़ाइलों को उसी फ़ोल्डर में सापेक्ष पथ के साथ कैसे बनाया जाए? "__file__
" या "os.getcwd()
" का उपयोग करके कई समाधान हैं, लेकिन मुझे उम्मीद है कि एक क्लीनर तरीका है, जैसे स्ट्रिंग में उसी विशेष वर्ण को खोलने के लिए आप() या फ़ाइल()।
साथ 'os.getcwd()' समस्या क्या है? – cfedermann
'os.getcwd()' पहले मॉड्यूल का मार्ग लौटाता है, जिसने उस मॉड्यूल को आयात किया है, या आयात किया है जो आयात किया है। पहला मॉड्यूल कई निर्देशिकाओं में ऊपर या नीचे हो सकता है। तो यह 'os.getcwd() +' कुछ/कुछ/टाइप करने वाला/आखिरकार ' –
टाइप करने के लिए बहुत ही सुरुचिपूर्ण प्रतीत नहीं होता है, फिर नीचे प्रस्तावित 'sys.modules' उत्तर का प्रयास करें :) – cfedermann