एक कार्यशील निर्देशिका एक वर्तमान निर्देशिका है जिसमें हम काम कर रहे हैं और जिससे स्क्रिप्ट चलती है; इस निर्देशिका के भीतर, हमारे पास कई फाइलों तक पहुंच है (जो इसके भीतर स्थित हैं)। हालाँकि, हमें कभी-कभी निर्देशिकाओं को बदलने और फ़ाइलों और फ़ोल्डरों के बीच आगे और पीछे जाने की आवश्यकता होती है। इस ट्यूटोरियल में, हम सीखेंगे कि पायथन में वर्किंग डायरेक्टरी को कैसे बदला जाए।
ओएस मॉड्यूल
सबसे पहले, इसे प्राप्त करने के लिए, हमें पायथन में ओएस मॉड्यूल की आवश्यकता होगी। चूंकि यह पहले से इंस्टॉल आता है, इसलिए कुछ भी इंस्टॉल करने की जरूरत नहीं है। ओएस मॉड्यूल का उपयोग आमतौर पर सिस्टम पर फाइलों और फ़ोल्डरों को इंटरैक्ट करने, प्रबंधित करने और संशोधित करने के लिए पायथन में किया जाता है। उदाहरण के लिए, हम निर्देशिका बना सकते हैं/हटा सकते हैं, कार्यशील निर्देशिकाओं को बदल सकते हैं, वॉकथ्रू फाइलें, जांच सकते हैं कि फाइलें मौजूद हैं या नहीं... यह कहने की जरूरत नहीं है कि यह एक बहुत ही उपयोगी मॉड्यूल है।
वर्तमान कार्यशील निर्देशिका प्राप्त करना
वर्तमान कार्यशील निर्देशिका प्राप्त करने के लिए, हम उपयोग करते हैं getcwd () विधि ओएस मॉड्यूल से। कृपया यहां ध्यान दें कि कोई तर्क पारित नहीं किया गया है। मेरे मामले में, आउटपुट था /होम/कल्याणी/पाइचार्मप्रोजेक्ट्स/पायथनप्रोजेक्ट1 एक Ubuntu मशीन पर (PyCharm चल रहा है)। इसका मतलब है कि मुख्य स्क्रिप्ट - main.py - इस फ़ोल्डर (पायथनप्रोजेक्ट 1) के भीतर स्थित है। और आप पर ध्यान दें, कार्यशील निर्देशिका, सबसे पहले और सबसे महत्वपूर्ण एक फ़ोल्डर!
आयात आप
# वर्तमान कार्यशील निर्देशिका प्राप्त करें
वर्तमान निर्देशिका= आप.गेटसीडब्ल्यूडी()
प्रिंट('आपकी वर्तमान कार्यशील निर्देशिका %s है'% वर्तमान निर्देशिका)
वर्तमान कार्यशील निर्देशिका को बदलना
अपनी कार्यशील निर्देशिका को बदलना chdir() विधि के साथ आसान है, जो ठीक एक तर्क लेता है - एक स्ट्रिंग के रूप में नए स्थान का पथ।
आयात आप
# वर्तमान कार्यशील निर्देशिका प्राप्त करें
वर्तमान निर्देशिका= आप.गेटसीडब्ल्यूडी()
प्रिंट('आपकी वर्तमान कार्यशील निर्देशिका %s है'% वर्तमान निर्देशिका)
करने के लिए पहली बात यह है कि कार्यशील निर्देशिका में नया पथ सेट करना है। उबंटू पर, यह बहुत सीधा है!
# एक नई कार्यशील निर्देशिका सेट करेंnew_working_directory= '/ होम/कल्याणी/डेस्कटॉप/पायथन डायरेक्टरी'
विंडोज़ पर, आपको निर्देशिका को परिभाषित करने के लिए डबल बैकस्लैश का उपयोग करने की आवश्यकता है।
#new_working_directory = 'C:\Users\never\Desktop\PythonDirectory'
अगला, हम एक कोशिश-छोड़कर खंड को परिभाषित करते हैं। यदि पथ मौजूद है, तो हम कार्य निर्देशिका को एक नई कार्यशील निर्देशिका में बदलने के लिए chdir () विधि का उपयोग करेंगे। यदि पथ निर्देशिका नहीं है, तो यह एक त्रुटि फेंक देगा!
प्रयत्न:आप.छदिरो(new_working_directory)
प्रिंट('कार्यशील निर्देशिका बदल दी गई है!')
प्रिंट('डब्ल्यूडी: %s'%आप.गेटसीडब्ल्यूडी())
के अलावाNotADDirectoryत्रुटि:
प्रिंट('आपने कोई निर्देशिका नहीं चुनी है।')
के अलावाफ़ाइल नॉटफाउंड त्रुटि:
प्रिंट('फोल्डर नहीं मिला। रास्ता गलत है।')
के अलावाअनुमति त्रुटि:
प्रिंट('आपके पास इस फ़ोल्डर/फ़ाइल तक पहुंच नहीं है।')
पूरा कोड इस तरह दिखेगा:
आयात आप# वर्तमान कार्यशील निर्देशिका प्राप्त करें
वर्तमान निर्देशिका= आप.गेटसीडब्ल्यूडी()
प्रिंट('आपकी वर्तमान कार्यशील निर्देशिका %s है'% वर्तमान निर्देशिका)
# एक नई कार्यशील निर्देशिका सेट करें
#new_working_directory = '/ होम/कल्याणी/डेस्कटॉप/पायथन डायरेक्टरी'
new_working_directory=आर'सी: यूसेवा करएनकभीडीesktopपीythonDirectory'
प्रयत्न:
आप.छदिरो(new_working_directory)
प्रिंट('कार्यशील निर्देशिका बदल दी गई है!')
प्रिंट('डब्ल्यूडी: %s'%आप.गेटसीडब्ल्यूडी())
के अलावाNotADDirectoryत्रुटि:
प्रिंट('आपने कोई निर्देशिका नहीं चुनी है।')
के अलावाफ़ाइल नॉटफाउंड त्रुटि:
प्रिंट('फोल्डर नहीं मिला। रास्ता गलत है।')
के अलावाअनुमति त्रुटि:
प्रिंट('आपके पास इस फ़ोल्डर/फ़ाइल तक पहुंच नहीं है।')
वास्तव में, गलतियाँ विभिन्न प्रकार के अपवाद उत्पन्न कर सकती हैं:
मैं। NotADDirectoryत्रुटि:
अब मान लीजिए कि मैंने पथ या नई कार्यशील निर्देशिका के लिए निम्न कोड लिखा है:
new_working_directory= 'सी:\उपयोगकर्ताओं\कभी नहीं\डेस्कटॉप\पायथनडायरेक्टरी\text.txt'आप यहाँ जो नोट कर सकते हैं वह यह है कि मैं टेक्स्ट दस्तावेज़ के पथ की ओर इशारा कर रहा हूँ जिसे text.txt कहा जाता है। और बाद वाला एक त्रुटि फेंक देगा जिसे NotADDirectoryError के रूप में जाना जाता है। दूसरे शब्दों में, आपका पथ किसी प्रकार की निर्देशिका को इंगित करना चाहिए।
द्वितीय फ़ाइल नॉटफाउंड त्रुटि:
पथ मौजूद नहीं होने पर एक FileNotFoundError फेंक दिया जाता है। तो, मान लीजिए कि मेरे पास मेरे डेस्कटॉप पर PythonDirectory के नाम से कोई निर्देशिका नहीं है और मैंने अपना पथ निर्धारित किया है:
new_working_directory= 'सी: यूसेवा करएनकभीडीesktopपीythonDirectory'यह एक फेंक देगा FileNotFoundError . इस त्रुटि का सीधा सा मतलब है कि जिस निर्देशिका की हम ओर इशारा कर रहे हैं वह मौजूद नहीं है या नहीं मिली है।
iii. अनुमति त्रुटि:
प्रति अनुमति त्रुटि तब उठाया जाता है जब उपयोगकर्ता के पास चुनी गई निर्देशिका को संशोधित करने या उस तक पहुंचने के लिए पर्याप्त अनुमति नहीं होती है।
iv. वक्य रचना त्रुटि:
सिंटैक्स त्रुटि तब होती है जब पथ में सिंटैक्स त्रुटि होती है। विंडोज़ पर, अगर हम यह कहने के लिए लिखते हैं:
new_working_directory= 'सी: यूसेवा करएनकभीडीesktopपीythonDirectory'एक सिंथैक्स त्रुटि फेंक दी जाती है! हालाँकि, सिंटैक्स त्रुटि को पकड़ना बहुत कठिन होता है क्योंकि इसे मूल्यांकन, आयात या निष्पादित करने की आवश्यकता होती है। जैसे, जब हम कोशिश-छोड़कर ब्लॉक लिखते हैं, तो ऐसी त्रुटि को पकड़ना कठिन होता है।
विंडोज़ पर, किसी भी त्रुटि से बचने के लिए, पथ को तीन अलग-अलग तरीकों में से एक में लिखा जा सकता है जैसे कि कोई त्रुटि नहीं डाली जाती है:
विधि 1: इस विधि में, हम स्ट्रिंग को सेट करने से पहले एक r जोड़ते हैं।
new_working_directory=आर'सी: यूसेवा करएनकभीडीesktopपीythonDirectory'विधि 2: हम डबल बैकस्लैश का उपयोग करते हैं।
new_working_directory= 'सी:\उपयोगकर्ताओं\कभी नहीं\डेस्कटॉप\पायथनडायरेक्टरी'विधि 3: हम सिंगल फ़ॉरवर्ड स्लैश का उपयोग करते हैं।
new_working_directory= 'सी:/उपयोगकर्ता/कभी नहीं/डेस्कटॉप/पायथन डायरेक्टरी'पथ मॉड्यूल
हम पथ मॉड्यूल का उपयोग करके कार्यशील निर्देशिका को भी बदल सकते हैं। सबसे पहले, पथ को निम्नानुसार स्थापित करें (मैंने मॉड्यूल को लिंक भी दिया है):
पाइप स्थापित पथ(https://पीपीआई।संगठन/परियोजना/पथ/)
आगे हम लिखते हैं:
सेपथआयातपथआयात आप
सबसे पहले, ओएस मॉड्यूल और getcwd () विधि का उपयोग करके वर्तमान कार्यशील निर्देशिका की जांच करें।
# वर्तमान कार्यशील निर्देशिका की जाँच करेंसीडब्ल्यूडी= आप.गेटसीडब्ल्यूडी()
प्रिंट('वर्तमान कार्यशील निर्देशिका है: %s'% सीडब्ल्यूडी)
प्रिंट('-------------------------------------------)
इसके बाद, नई कार्यशील निर्देशिका के लिए पथ सेट करें। इस मामले में, मैंने विंडोज मशीन पर उदाहरण सेट करना चुना है:
# नई कार्यशील निर्देशिका के लिए पथ सेट करेंनया रास्ता= 'सी:\उपयोगकर्ताओं\कभी नहीं\डेस्कटॉप\पायथनडायरेक्टरी'
कार्यशील निर्देशिका को बदलने के लिए पथ () का उपयोग करें। पथ() यहां केवल एक तर्क लेता है: नई कार्यशील निर्देशिका का वास्तविक पथ और कार्य को पूरा करने के लिए chdir() विधि का उपयोग करता है।
# वर्किंग डायरेक्टरी बदलेंपथ(नया रास्ता).छदिरो()
फिर से जांचें कि क्या कार्यशील निर्देशिका बदल दी गई है। और यहाँ, जैसा कि आप चित्र में देख सकते हैं, कार्यशील निर्देशिका वास्तव में बदल दी गई है!
# वर्किंग डायरेक्टरी को दोबारा जांचें#बदला गया है?
सीडब्ल्यूडी= आप.गेटसीडब्ल्यूडी()
प्रिंट('नई कार्यशील निर्देशिका %s है'% सीडब्ल्यूडी)
कार्यशील निर्देशिकाओं को बदलना एक आसान काम है और केवल एक विधि - chdir (पथ) विधि लेता है। हालांकि, आप विंडोज मशीन या लिनक्स मशीन पर हैं या नहीं, इस पर निर्भर करते हुए, आपको सावधान रहना होगा कि आप स्ट्रिंग के रूप में पथ को कैसे इनपुट करते हैं। अगर गलत तरीके से इनपुट किया गया है, तो यह एक त्रुटि फेंक सकता है!
हैप्पी कोडिंग!