Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन (ग्लोब) में यूनिक्स शैली पथनाम पैटर्न विस्तार

कई बार प्रोग्राम को फाइल सिस्टम में फाइलों की सूची के माध्यम से पुनरावृति की आवश्यकता होती है, अक्सर एक पैटर्न से मेल खाने वाले नामों के साथ। ग्लोब मॉड्यूल विशिष्ट निर्देशिका में, एक निश्चित एक्सटेंशन वाले, या फ़ाइल नाम के एक भाग के रूप में एक निश्चित स्ट्रिंग के साथ फ़ाइलों की रोशनी बनाने में उपयोगी है।

ग्लोब मॉड्यूल फ़ंक्शंस द्वारा उपयोग किया जाने वाला पैटर्न मिलान तंत्र UNIX पथ विस्तार नियमों का पालन करता है। हालांकि यह मॉड्यूल टिल्ड (~) और शेल चर का विस्तार नहीं करता है।

ग्लोब मॉड्यूल में मुख्य रूप से तीन फंक्शन होते हैं

ग्लोब ()

यह फ़ंक्शन पथनाम पैरामीटर में दिए गए पैटर्न से मेल खाने वाली फ़ाइलों की एक सूची देता है। पथनाम पूर्ण या सापेक्ष हो सकता है। इसमें * और ? जैसे वाइल्ड कार्ड शामिल हो सकते हैं।

इस फ़ंक्शन का पुनरावर्ती पैरामीटर डिफ़ॉल्ट रूप से गलत है। यदि सही है, वर्तमान निर्देशिका की उपनिर्देशिकाओं को दिए गए पैटर्न से मेल खाने वाली फ़ाइलों को खोजने के लिए पुनरावर्ती रूप से खोजा जाता है।

निम्नलिखित कोड वर्तमान निर्देशिका में सभी फाइलों को '.py' एक्सटेंशन के साथ प्रिंट करता है।

>>> import glob
>>> for file in glob.glob("*.py"):
print (file)

निम्नलिखित कोड में, पुनरावर्ती =सही पैरामीटर उपनिर्देशिकाओं से '.py' एक्सटेंशन वाली फ़ाइलों को भी मुद्रित करने का कारण बनता है।

>>> for file in glob.glob("*.py", recursive=True):
print (file)

पैटर्न पथ नाम में वाइल्ड कार्ड वर्ण शामिल हो सकता है? निम्नलिखित कथन उन फाइलों की सूची को प्रिंट करता है जिनके नाम में पहले दो अक्षरों के साथ तीन अक्षर हैं, 'पीपी' हैं।

>>> for file in glob.glob("pp?.py"):
print (file)

निम्नलिखित कोड उन फाइलों को प्रिंट करता है जिनका नाम एक अंक के साथ समाप्त होता है।

>>> for file in glob.glob('*[0-9].py')
print (file)

निम्नलिखित सिंटैक्स के कारण दिए गए पथ से मेल खाने वाली फ़ाइलें पुनरावर्ती रूप से मुद्रित होती हैं।

>>> glob.glob('**/*.py', recursive=True)

वर्तमान निर्देशिका में निर्देशिकाओं के नाम पुनरावर्ती रूप से मुद्रित करने के लिए,

>>> glob.glob('tcl/**/', recursive=True)

इग्लोब ()

यह फ़ंक्शन फ़ाइलों की सूची के बजाय एक जनरेटर ऑब्जेक्ट देता है। अगला () फ़ंक्शन का उपयोग करके, बाद के फ़ाइल नाम नीचे के रूप में मुद्रित किए जा सकते हैं।

>>> it=glob.iglob('*.py')
>>> type(it)
<class 'generator'>
>>> while True:
try:
file=next(it)
print (file)
except StopIteration:
break

एस्केप ()

यह फ़ंक्शन दिए गए वर्णों से बच निकलता है। यह तब उपयोगी होता है जब कुछ वर्णों वाली फ़ाइलों को नाम का हिस्सा बनाने की आवश्यकता होती है। निम्न उदाहरण उन फ़ाइलों की खोज करता है जिनमें वर्ण स्ट्रिंग में कोई भी वर्ण है।

>>> chars='[]()#'
>>> for char in chars:
esc='*'+glob.escape(char)+'.py'
for file in (glob.glob(esc)):
print (file)
xyz[.py
pp[].py
pp(.py
pp#.py

  1. पायथन में फाइल ऑब्जेक्ट्स?

    पायथन में, जब भी हम फ़ाइलों को पढ़ने या लिखने की कोशिश करते हैं, तो हमें किसी पुस्तकालय को आयात करने की आवश्यकता नहीं होती है क्योंकि इसे मूल रूप से संभाला जाता है। फ़ाइल ऑब्जेक्ट प्राप्त करने के लिए सबसे पहले हम बिल्ट-इन ओपन फ़ंक्शन का उपयोग करेंगे। खुला फ़ंक्शन एक फ़ाइल खोलता है और एक फ़ाइल ऑब्ज

  1. पायथन में जंक फाइल ऑर्गनाइज़र?

    यह एक आलसी अजगर प्रोग्रामर के लिए बहुत उपयोगी लग सकता है जो अधिकांश फाइलों और फ़ोल्डरों को एक स्थान पर रखता है और कभी-कभी भ्रमित होता है कि सभी फाइलें क्या हैं और निश्चित रूप से वह इसे मैन्युअल रूप से करने के लिए बहुत आलसी है। तो नीचे एक पायथन प्रोग्राम है जो एक ही बार में उपयुक्त फ़ोल्डर में सब कुछ

  1. पायथन में फाइलोटैक्सिस पैटर्न?

    फाइलोटैक्सिस पैटर्न क्या है? जब हम वापस जाते हैं, तो हमारे वनस्पति विज्ञान वर्गों और पौधों की दुनिया में, फ़ाइलोटैक्सिस का अर्थ है पौधों के तने पर फूलों, पत्तियों या बीजों की व्यवस्था, जैसा कि फाइबोनैचि सर्पिल में पाया जाता है। फाइबोनैचि अनुक्रम के आधार पर, फाइबोनैचि सर्पिल संख्याओं का एक समूह है ज