पायथन में पाथ पर्यावरण-चर विभाजक कैसे प्राप्त करें?


156

जब कई निर्देशिकाओं को संक्षिप्त करने की आवश्यकता होती है, जैसे कि निष्पादन योग्य खोज पथ में, एक ओएस पर निर्भर विभाजक चरित्र होता है। विंडोज के ';'लिए यह लिनक्स के लिए है ':'। क्या पायथन में एक तरीका है कि किस चरित्र को विभाजित किया जाए?

इस सवाल पर चर्चा में मैं अजगर का उपयोग करके अपने अजगर पथ का पता कैसे लगाऊं? , यह सुझाव दिया जाता है कि os.sepयह करेंगे। यह उत्तर गलत है, क्योंकि यह एक निर्देशिका या फ़ाइल नाम के घटकों के लिए विभाजक है और '\\'या के बराबर है '/'

जवाबों:


220

219
अगर, मेरी तरह, आपने इस प्रश्न का मुख्य भाग नहीं पढ़ा है और सिर्फ शीर्षक से गए हैं, तो आप सोचेंगे कि यह एक ऐसा अक्षर है जो एक फ़ाइल सिस्टम पथ के तत्वों को अलग करता है (लिनक्स और मैकओएसएक्स पर स्लैश, विंडोज पर बैकस्लैश)। ऐसा नहीं है, यह चरित्र है कि एक खोल के तत्वों को अलग करती है पथ कि निष्पादन योग्य आदेशों का पता लगाने का प्रयोग किया जाता है। os.sepया os.path.sepक्या आप फाइल सिस्टम पथ के लिए की जरूरत है।
पेरी

71
os.pathsepहै :या ;जबकि os.path.sepहै \\ या /- कभी-कभी पायथन में नाम मुझे बहुत ही खराब तरीके से चुना गया है। यही कारण है कि .जिस तरह से भी एक अंतर की बड़ी बना देता है।
आर्टऑफवर्फ

1
@Perry मैंने सवाल संपादित किया। उम्मीद है कि मेरा संपादन भ्रम को दूर करता है (मैंने संकेत दिया कि यह प्रश्न "फाइलसिस्टम पथ" के बजाय "पथ पर्यावरण चर" के बारे में पूछ रहा है)।
ट्रेवर बॉयड स्मिथ

तो वहाँ हैं os.sepऔर os.path.sep, जो समान हैं, साथ ही os.pathsepऔर os.path.pathsepजो समान भी हैं। वे ऐसा क्यों करेंगे?
बॉलपॉइंटबैन


12

इसे थोड़ा और स्पष्ट करना (मेरे जैसे अजगर के शौक के लिए)

import os
print(os.pathsep)

4

ठीक है, इसलिए हैं:

  • os.pathsepवह है ;और जो PATHपर्यावरण चर में एक विभाजक है ;
  • os.path.sepयह /यूनिक्स / लिनक्स और \विंडोज में है, जो पथ घटकों के बीच एक विभाजक है।

समानता भ्रम का एक स्रोत है।


क्या आपने प्रश्न भी पढ़ा है? os.path.sepएक अलग सवाल का जवाब है ।
मार्क रैनसम

आप सही कह रहे हैं, धन्यवाद! मेरा भ्रम इस तथ्य से आया है कि वास्तव में मैं '\' और '/' सिस्टम-विशिष्ट विभाजक (जो कि os.path.sep है) की तलाश कर रहा था, जबकि इस पृष्ठ को खोज परिणामों में से एक के रूप में प्रस्तावित किया गया था।
DVV

1

यह आपकी कार्य निर्देशिका / विशिष्ट फ़ोल्डर के लिए एक नमूना पथ है -

 import os
 my = os.path.sep+ "testImages" + os.path.sep + "imageHidden.png"
 print(my)

लिनक्स के लिए आउटपुट-

/home/*******/Desktop/folder/PlayWithPy/src/testImages/imageHidden.png

विंडोज के लिए आउटपुट-

C:\\Users\\Administrator\\Desktop\\folder\\tests\\testImages\\imageHidden.png

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.