Python 3.7

os.path - सामान्य पथनाम जोड़तोड़




python

os.path - सामान्य पथनाम जोड़तोड़

स्रोत कोड: Lib/posixpath.py (POSIX के लिए), Lib/ntpath.py (Windows NT के लिए), और Lib/macpath.py (Macintosh के लिए)

यह मॉड्यूल पाथनाम पर कुछ उपयोगी कार्यों को कार्यान्वित करता है। फ़ाइलों को पढ़ने या लिखने के लिए open() देखें open() , और फ़ाइल सिस्टम तक पहुँचने के लिए os मॉड्यूल देखें। पथ मापदंडों को स्ट्रिंग्स, या बाइट्स के रूप में पारित किया जा सकता है। एप्लिकेशन को (यूनिकोड) चरित्र स्ट्रिंग के रूप में फ़ाइल नामों का प्रतिनिधित्व करने के लिए प्रोत्साहित किया जाता है। दुर्भाग्य से, कुछ फ़ाइल नाम यूनिक्स पर तार के रूप में प्रतिनिधित्व करने योग्य नहीं हो सकते हैं, इसलिए यूनिक्स पर मनमाने ढंग से फ़ाइल नामों का समर्थन करने की आवश्यकता वाले अनुप्रयोगों को पथ नामों का प्रतिनिधित्व करने के लिए बाइट ऑब्जेक्ट्स का उपयोग करना चाहिए। इसके विपरीत, बाइट्स ऑब्जेक्ट्स का उपयोग करके विंडोज पर सभी फ़ाइल नाम (मानक mbcs एन्कोडिंग में) का प्रतिनिधित्व नहीं कर सकते हैं, इसलिए विंडोज एप्लिकेशन को सभी फ़ाइलों तक पहुंचने के लिए स्ट्रिंग ऑब्जेक्ट्स का उपयोग करना चाहिए।

एक यूनिक्स शेल के विपरीत, पायथन कोई भी स्वचालित पथ विस्तार नहीं करता है। expanduser() जैसे expanduser() और expandvars() जैसे कार्य स्पष्ट रूप से लागू किए जा सकते हैं जब कोई अनुप्रयोग शेल-जैसे पथ विस्तार की इच्छा रखता है। ( glob मॉड्यूल भी देखें।)

यह भी देखें

pathlib मॉड्यूल उच्च-स्तरीय पथ ऑब्जेक्ट प्रदान करता है।

ध्यान दें

ये सभी कार्य या तो केवल बाइट्स या केवल स्ट्रिंग ऑब्जेक्ट्स को अपने मापदंडों के रूप में स्वीकार करते हैं। परिणाम उसी प्रकार का एक ऑब्जेक्ट है, यदि कोई पथ या फ़ाइल नाम वापस किया जाता है।

ध्यान दें

चूंकि विभिन्न ऑपरेटिंग सिस्टम में अलग-अलग पथ नाम सम्मेलनों होते हैं, मानक पुस्तकालय में इस मॉड्यूल के कई संस्करण हैं। os.path मॉड्यूल हमेशा ऑपरेटिंग सिस्टम के लिए उपयुक्त पथ मॉड्यूल है, जो चल रहा है, और इसलिए स्थानीय पथों के लिए उपयोग करने योग्य है। हालाँकि, आप अलग-अलग मॉड्यूल का आयात और उपयोग भी कर सकते हैं यदि आप एक ऐसे मार्ग में हेरफेर करना चाहते हैं जो हमेशा विभिन्न स्वरूपों में से एक में होता है। वे सभी एक ही इंटरफ़ेस है:

  • UNIX- शैली पथों के लिए posixpath
  • विंडोज पथ के लिए ntpath
  • पुराने शैली के MacOS रास्तों के लिए macpath
os.path.abspath(path)

पाथनाम पथ के एक सामान्यीकृत निरपेक्ष संस्करण लौटें। अधिकांश प्लेटफार्मों पर, यह फ़ंक्शन normpath() को निम्नानुसार कॉल करने के बराबर है: normpath(join(os.getcwd(), path))

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.basename(path)

Pathname पथ का आधार नाम वापस करें। यह split() लिए मार्ग से लौटते हुए जोड़ी का दूसरा तत्व है। ध्यान दें कि इस फ़ंक्शन का परिणाम यूनिक्स बेसन कार्यक्रम से अलग है; जहाँ '/foo/bar/' रिटर्न 'bar' के लिए basename() , basename() फ़ंक्शन एक खाली स्ट्रिंग ( '' ) देता है।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.commonpath(paths)

अनुक्रम पथों में प्रत्येक पथनाम के सबसे लंबे सामान्य उप-पथ पर लौटें। यदि पथ निरपेक्ष और सापेक्ष पथनाम दोनों हैं, या यदि पथ रिक्त हैं, तो ValueError बढ़ाएँ। commonprefix() विपरीत, यह एक वैध पथ देता है।

उपलब्धता: यूनिक्स, विंडोज

संस्करण 3.5 में नया।

संस्करण 3.6 में परिवर्तित: पथ-जैसी वस्तुओं के अनुक्रम को स्वीकार करता है।

os.path.commonprefix(list)

सूची में सभी पथों का एक उपसर्ग है जो सबसे लंबे समय तक उपसर्ग (वर्ण-दर-वर्ण लिया गया) लौटाएँ। यदि सूची खाली है, तो खाली स्ट्रिंग ( '' ) वापस करें।

ध्यान दें

यह फ़ंक्शन अमान्य पथ लौटा सकता है क्योंकि यह एक बार में एक वर्ण का काम करता है। मान्य पथ प्राप्त करने के लिए, commonpath() देखें।

>>> os.path.commonprefix(['/usr/lib', '/usr/local/lib'])
'/usr/l'

>>> os.path.commonpath(['/usr/lib', '/usr/local/lib'])
'/usr'

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.dirname(path)

पथनाम पथ का निर्देशिका नाम लौटाएं। यह split() लिए मार्ग से लौटते हुए जोड़ी का पहला तत्व है।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.exists(path)

यदि पथ मौजूदा पथ या एक खुले फ़ाइल डिस्क्रिप्टर को संदर्भित करता है तो True लौटें। टूटे प्रतीकात्मक लिंक के लिए False रिटर्न। कुछ प्लेटफार्मों पर, यह फ़ंक्शन False वापस आ सकता है यदि अनुरोधित फ़ाइल पर os.stat() को निष्पादित करने की अनुमति नहीं दी गई है, भले ही शारीरिक रूप से मौजूद हो।

संस्करण 3.3 में परिवर्तित: पथ अब एक पूर्णांक हो सकता है: यदि यह एक खुली फ़ाइल विवरणक है तो True लौटा है, अन्यथा False

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.lexists(path)

यदि पथ मौजूदा पथ को संदर्भित करता है तो True लौटें। टूटे प्रतीकात्मक लिंक के लिए True os.lstat() कमी वाले प्लेटफार्मों पर exists() बराबर।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.expanduser(path)

यूनिक्स और विंडोज पर, उस उपयोगकर्ता के घर निर्देशिका द्वारा प्रतिस्थापित ~ या ~user प्रारंभिक घटक के साथ तर्क लौटाएं।

यूनिक्स पर, एक प्रारंभिक ~ पर्यावरण चर HOME से बदल दिया जाता है यदि यह सेट है; अन्यथा वर्तमान उपयोगकर्ता के होम डायरेक्टरी को बिल्ट-इन मॉड्यूल pwd माध्यम से पासवर्ड डायरेक्टरी में देखा जाता है। एक प्रारंभिक ~user को सीधे पासवर्ड निर्देशिका में देखा जाता है।

यदि सेट किया जाता है, तो विंडोज़, HOME और USERPROFILE का उपयोग किया जाएगा, अन्यथा HOMEPATH और HOMEDRIVE संयोजन का उपयोग किया जाएगा। ऊपर दिए गए उपयोगकर्ता पथ से अंतिम निर्देशिका घटक को अलग करके एक प्रारंभिक ~user को नियंत्रित किया जाता है।

यदि विस्तार विफल हो जाता है या यदि पथ एक टिल्ड से शुरू नहीं होता है, तो मार्ग अपरिवर्तित वापस आ जाता है।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.expandvars(path)

विस्तारित पर्यावरण चर के साथ तर्क लौटाएं। फॉर्म $name या ${name} की जगह पर्यावरण चर नाम के मूल्य से प्रतिस्थापित किया जाता है। विकृत चर नाम और गैर-मौजूदा चर के संदर्भ अपरिवर्तित छोड़ दिए जाते हैं।

विंडोज पर, $name और ${name} अलावा %name% विस्तार का समर्थन किया जाता है।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.getatime(path)

पथ के अंतिम उपयोग का समय लौटाएं। रिटर्न वैल्यू एक फ्लोटिंग पॉइंट नंबर है जो कि एपोक के बाद से सेकंड की संख्या देता है ( time मॉड्यूल देखें)। यदि फ़ाइल मौजूद नहीं है या दुर्गम है, तो OSError उठाएँ।

os.path.getmtime(path)

पथ के अंतिम संशोधन का समय लौटाएं। रिटर्न वैल्यू एक फ्लोटिंग पॉइंट नंबर है जो कि एपोक के बाद से सेकंड की संख्या देता है ( time मॉड्यूल देखें)। यदि फ़ाइल मौजूद नहीं है या दुर्गम है, तो OSError उठाएँ।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.getctime(path)

सिस्टम के उस समय को लौटाएं, जो कुछ सिस्टम पर (जैसे यूनिक्स) अंतिम मेटाडेटा परिवर्तन का समय है, और, दूसरों पर (विंडोज की तरह), पथ का निर्माण समय है । वापसी मूल्य एक संख्या है जो युग के बाद से सेकंड की संख्या दे रही है ( time मॉड्यूल देखें)। यदि फ़ाइल मौजूद नहीं है या दुर्गम है, तो OSError उठाएँ।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.getsize(path)

पथ के , बाइट्स में आकार वापस करें। यदि फ़ाइल मौजूद नहीं है या दुर्गम है, तो OSError उठाएँ।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.isabs(path)

यदि पथ एक निरपेक्ष पथनाम है तो True लौटें। यूनिक्स पर, इसका मतलब है कि यह एक स्लैश के साथ शुरू होता है, विंडोज पर यह एक संभावित ड्राइव अक्षर को चॉप करने के बाद (पीछे) स्लैश से शुरू होता है।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.isfile(path)

यदि पथ exists() नियमित फ़ाइल है तो True लौटें। यह प्रतीकात्मक लिंक का अनुसरण करता है, इसलिए एक ही मार्ग के लिए दोनों islink() और islink() isfile() सही हो सकता है।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.isdir(path)

यदि पथ exists() निर्देशिका है तो True लौटें। यह प्रतीकात्मक लिंक का अनुसरण करता है, इसलिए दोनों islink() और isdir() दोनों एक ही पथ के लिए सही हो सकते हैं।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

यदि पथ exists() निर्देशिका प्रविष्टि को संदर्भित करता है तो यह True कि एक प्रतीकात्मक लिंक है। हमेशा False अगर प्रतीकात्मक लिंक पायथन रनटाइम द्वारा समर्थित नहीं हैं।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.ismount(path)

यदि पथ नाम पथ आरोह बिंदु है तो True लौटें: एक फाइल सिस्टम में एक बिंदु जहां एक अलग फाइल सिस्टम आरोहित किया गया है। POSIX पर, फ़ंक्शन यह जाँचता है कि पथ के जनक, path/.. , पथ से भिन्न डिवाइस पर है या path/.. और पथ समान i-नोड पर समान डिवाइस पर इंगित करता है - यह आरोह बिंदुओं का पता लगाना चाहिए सभी यूनिक्स और POSIX वेरिएंट के लिए। विंडोज पर, एक ड्राइव लेटर रूट और एक शेयर यूएनसी हमेशा माउंट पॉइंट होते हैं, और किसी अन्य पथ के लिए GetVolumePathName को यह देखने के लिए कहा जाता है कि क्या यह इनपुट पथ से भिन्न है।

संस्करण 3.4 में नया: विंडोज पर गैर-रूट माउंट बिंदुओं का पता लगाने के लिए समर्थन।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.join(path, *paths)

समझदारी से एक या अधिक पथ घटकों में शामिल हों। वापसी का मान पथ और किसी भी सदस्य के पथ का os.sep होता है, जिसमें पिछले एक को छोड़कर प्रत्येक गैर-खाली हिस्से के बाद एक निर्देशिका विभाजक ( os.sep ) होता है, जिसका अर्थ है कि परिणाम केवल एक विभाजक में समाप्त होगा यदि अंतिम भाग खाली है । यदि कोई घटक एक पूर्ण पथ है, तो पिछले सभी घटकों को फेंक दिया जाता है और निरपेक्ष पथ घटक से जुड़ना जारी रहता है।

जब कोई पूर्ण पथ घटक (जैसे, r'\foo' ) मिला हो, तो Windows पर ड्राइव अक्षर रीसेट नहीं होता है। यदि किसी घटक में ड्राइव अक्षर है, तो पिछले सभी घटकों को निकाल दिया जाता है और ड्राइव अक्षर रीसेट हो जाता है। ध्यान दें कि चूंकि प्रत्येक ड्राइव के लिए एक वर्तमान निर्देशिका है, os.path.join("c:", "foo") ड्राइव C: ( c:foo ) पर वर्तमान निर्देशिका के सापेक्ष पथ का प्रतिनिधित्व करता है, c:\foo

संस्करण 3.6 में परिवर्तित किया गया: पथ और पथ के लिए पथ -जैसा ऑब्जेक्ट स्वीकार करता है

os.path.normcase(path)

एक पाथनाम के मामले को सामान्य करें। यूनिक्स और मैक ओएस एक्स पर, यह अपरिवर्तित पथ को लौटाता है; केस-असंवेदनशील फाइल सिस्टम पर, यह लोअरकेस में पथ परिवर्तित करता है। विंडोज पर, यह आगे के स्लैश को बैकवर्ड स्लैश में भी परिवर्तित करता है। यदि कोई पथ पथ या bytes (सीधे या अप्रत्यक्ष रूप से os.PathLike इंटरफ़ेस के माध्यम से) नहीं है, तो एक टाइप करें।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.normpath(path)

निरर्थक विभाजकों और अप-स्तरीय संदर्भों को A/./B सामान्य करें ताकि A//B , A/B/ , A/./B और A/foo/../B सभी A/B । यह स्ट्रिंग हेरफेर प्रतीकात्मक लिंक वाले पथ का अर्थ बदल सकता है। विंडोज पर, यह आगे के स्लैश को बैकवर्ड स्लैश में परिवर्तित करता है। मामले को सामान्य करने के लिए, normcase() उपयोग करें।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.realpath(path)

निर्दिष्ट फ़ाइल नाम का कैनोनिकल पथ लौटाएं, जो मार्ग में आने वाले किसी भी प्रतीकात्मक लिंक को समाप्त करता है (यदि वे ऑपरेटिंग सिस्टम द्वारा समर्थित हैं)।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.relpath(path, start=os.curdir)

वर्तमान निर्देशिका से या वैकल्पिक प्रारंभ निर्देशिका से पथ के लिए एक सापेक्ष फ़ाइलपथ पर लौटें। यह एक पथ संगणना है: पथ के अस्तित्व या प्रकृति की पुष्टि करने या प्रारंभ करने के लिए फाइल सिस्टम तक पहुँचा नहीं है।

os.curdir चूक शुरू करें

उपलब्धता: यूनिक्स, विंडोज।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.samefile(path1, path2)

यदि पथनाम तर्क दोनों एक ही फ़ाइल या निर्देशिका को संदर्भित करते हैं तो True लौटें। यह डिवाइस नंबर और आई-नोड संख्या द्वारा निर्धारित किया जाता है और यदि कोई os.stat() कॉल करता है, तो एक अपवाद को जन्म देता है।

उपलब्धता: यूनिक्स, विंडोज।

3.2 संस्करण में बदला: विंडोज समर्थन जोड़ा गया।

संस्करण 3.4 में परिवर्तित: Windows अब अन्य सभी प्लेटफार्मों के समान कार्यान्वयन का उपयोग करता है।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.sameopenfile(fp1, fp2)

यदि फ़ाइल डिस्क्रिप्टर fp1 और fp2 एक ही फ़ाइल को संदर्भित करता है तो True लौटें।

उपलब्धता: यूनिक्स, विंडोज।

3.2 संस्करण में बदला: विंडोज समर्थन जोड़ा गया।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.samestat(stat1, stat2)

यदि यह True तो स्टेट टुपल्स स्टेट 1 और स्टेट 2 उसी फाइल को देखें। ये संरचनाएँ os.fstat() , os.lstat() , या os.stat() द्वारा वापस आ सकती हैं। यह फ़ंक्शन samefile() और sameopenfile() द्वारा उपयोग किए गए अंतर्निहित तुलना को लागू करता है।

उपलब्धता: यूनिक्स, विंडोज।

संस्करण 3.4 में बदला गया : विंडोज समर्थन जोड़ा गया।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.split(path)

पाथनेम पथ को एक जोड़ी में विभाजित करें, (head, tail) जहां पूंछ अंतिम पाथनाम घटक है और सिर सब कुछ है जो कि आगे बढ़ रहा है। पूंछ वाले हिस्से में कभी स्लैश नहीं होगा; यदि पथ एक स्लैश में समाप्त होता है, तो पूंछ खाली होगी। यदि मार्ग में कोई स्लैश नहीं है, तो सिर खाली हो जाएगा। यदि मार्ग खाली है, तो सिर और पूंछ दोनों खाली हैं। ट्रेलिंग स्लैश को सिर से तब तक छीन लिया जाता है जब तक कि यह रूट (केवल एक या अधिक स्लैश) न हो। सभी मामलों में, join(head, tail) पथ के समान स्थान पर एक पथ देता है (लेकिन तार भिन्न हो सकते हैं)। इसके अलावा फ़ंक्शंस देखें dirname() और basename()

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.splitdrive(path)

पाथनेम पथ को एक जोड़ी (drive, tail) में विभाजित करें जहां ड्राइव या तो एक माउंट बिंदु या खाली स्ट्रिंग है। सिस्टम पर जो ड्राइव विनिर्देशों का उपयोग नहीं करते हैं, ड्राइव हमेशा खाली स्ट्रिंग होगी। सभी मामलों में, drive + tail पथ के समान होगी।

विंडोज पर, ड्राइव / यूएनसी शेयरपॉइंट और रिश्तेदार पथ में एक पथनाम को विभाजित करता है।

यदि पथ में एक ड्राइव अक्षर है, तो ड्राइव में कॉलन सहित सब कुछ शामिल होगा। जैसे splitdrive("c:/dir") रिटर्न ("c:", "/dir")

यदि पथ में UNC पथ है, तो ड्राइव में होस्ट नाम और साझा होगा, लेकिन चौथे विभाजक सहित नहीं। जैसे splitdrive("//host/computer/dir") रिटर्न ("//host/computer", "/dir")

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.splitext(path)

Pathname पथ को एक जोड़ी (root, ext) में विभाजित करें जैसे कि root + ext == path , और ext खाली है या एक अवधि के साथ शुरू होता है और इसमें अधिकांश एक अवधि होती है। बेसन पर प्रमुख अवधियों को अनदेखा किया जाता है; splitext('.cshrc') रिटर्न ('.cshrc', '') splitext('.cshrc') ('.cshrc', '')

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

os.path.supports_unicode_filenames

True अगर मनमाने ढंग से यूनिकोड स्ट्रिंग्स का उपयोग फ़ाइल नामों (फाइल सिस्टम द्वारा लगाई गई सीमाओं के भीतर) के रूप में किया जा सकता है।