मेरे पास एक पायथन मॉड्यूल है जो मॉड्यूल निर्देशिका की उपनिर्देशिका में कुछ संसाधनों का उपयोग करता है। ढेर अतिप्रवाह पर चारों ओर खोज और संबंधित उत्तर खोजने के बाद, मैं की तरहसीडब्ल्यूडी बदल गया है जब मैं पाइथन मॉड्यूल में एक सापेक्ष पथ का उपयोग कैसे करूं?
import os
os.path.join(os.path.dirname(__file__), 'fonts/myfont.ttf')
यह ठीक काम करता है जब मैं कहीं और से मॉड्यूल फोन कुछ का उपयोग करके संसाधनों के लिए मॉड्यूल को निर्देशित करने में कामयाब रहे, लेकिन यह टूट जाता है जब मैं मॉड्यूल फोन वर्तमान कार्यशील निर्देशिका को बदलने के बाद। समस्या यह है कि __file__
की सामग्री को एक रिश्तेदार पथ, जिसके खाते में तथ्य यह है कि मैं निर्देशिका बदल नहीं ले करता हैं:
>>> mymodule.__file__
'mymodule/__init__.pyc'
>>> os.chdir('..')
>>> mymodule.__file__
'mymodule/__init__.pyc'
मैं कैसे __file__
में निरपेक्ष पथ सांकेतिक शब्दों में बदलना कर सकते हैं या को छोड़कर कि, कैसे क्या मैं मॉड्यूल में अपने संसाधनों तक पहुंच सकता हूं इससे कोई फर्क नहीं पड़ता कि वर्तमान कार्यशील निर्देशिका क्या है? धन्यवाद!
धन्यवाद, यह पूरी तरह से काम करता है! कार्यशील निर्देशिका को बदलने से बचने के लिए मैं आपकी टिप्पणी को ध्यान में रखूंगा। – jvkersch