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

पायथन में यूनिक्स स्टाइल पाथनेम पैटर्न विस्तार (glob मॉड्यूल)

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

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

glob मॉड्यूल में मुख्य रूप से तीन फ़ंक्शन हैं:

glob()

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

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

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

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

निम्न कोड में, recursive=True पैरामीटर सबडायरेक्ट्रीज़ से '.py' एक्सटेंशन वाली फ़ाइलों को भी प्रिंट करने का कारण बनता है।

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

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

>>> 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)

iglob()

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

>>> it = glob.iglob('*.py')
>>> type(it)

>>> while True:
...     try:
...         file = next(it)
...         print(file)
...     except StopIteration:
...         break

escape()

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

>>> 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. पायथन में फाइल ऑब्जेक्ट्स: पूरी गाइड पायथन में फाइल ऑब्जेक्ट्स: पूरी गाइड

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

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

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

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

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