पायथन ओएस लाइब्रेरी का उपयोग निर्देशिका में फाइलों को सूचीबद्ध करने के लिए किया जाता है। पायथन os.listdir() विधि निर्देशिका में प्रत्येक फ़ाइल और फ़ोल्डर की एक सूची देता है। os.walk() फ़ंक्शन संपूर्ण फ़ाइल ट्री में प्रत्येक फ़ाइल की सूची देता है।
अक्सर, जब आप पायथन में फाइलों के साथ काम कर रहे होते हैं, तो आपको ऐसी परिस्थितियों का सामना करना पड़ता है जहां आप निर्देशिका में फाइलों को सूचीबद्ध करना चाहते हैं। उदाहरण के लिए, हो सकता है कि आप एक फ़ोल्डर में सभी पायथन फाइलों को ढूंढना चाहें।
पायथन ओएस लाइब्रेरी कई विधियाँ प्रदान करती है जिनका उपयोग किसी निर्देशिका में फ़ाइलों को सूचीबद्ध करने के लिए किया जा सकता है। यह ट्यूटोरियल चर्चा करेगा कि डायरेक्टर में फाइल्स और फोल्डर्स को प्राप्त करने के लिए os.listdir () का उपयोग कैसे करें। हम os.walk() . का उपयोग करने के बारे में भी बात करेंगे निर्देशिका में फ़ाइलें और फ़ोल्डर प्राप्त करने के लिए और इसकी उपनिर्देशिकाओं में।
पायथन ओएस लाइब्रेरी
पायथन ओएस पुस्तकालय कई प्रकार के कार्य प्रदान करता है जिनका उपयोग आप ऑपरेटिंग सिस्टम के साथ काम करने के लिए कर सकते हैं। ओएस मॉड्यूल में शामिल कार्य किसी भी आधुनिक ऑपरेटिंग सिस्टम पर काम करते हैं, चाहे वह विंडोज, लिनक्स या मैक हो।
चूंकि ओएस एक बाहरी पुस्तकालय है, इसलिए इसका उपयोग शुरू करने से पहले हमें इसे अपने कोड में आयात करना होगा। हम पाइथन आयात विवरण का उपयोग करके ऐसा कर सकते हैं:
<पूर्व>आयात ओएसअब जब हमने ओएस लाइब्रेरी को अपने कोड में इंपोर्ट कर लिया है, तो हम डायरेक्टरी में आइटम्स को लिस्ट करने के लिए इसके फंक्शन्स का इस्तेमाल शुरू कर सकते हैं।
पायथन os.listdir()
पायथन में, os.listdir() विधि किसी दिए गए निर्देशिका में फ़ाइलों और फ़ोल्डरों को सूचीबद्ध करती है। यह विधि '.' और '..' जैसी विशेष प्रविष्टियाँ नहीं लौटाती है, जिनका उपयोग ऑपरेटिंग सिस्टम विभिन्न निर्देशिकाओं के माध्यम से नेविगेट करने के लिए करता है।
os.listdir() फ़ोल्डरों के पहले स्तर से परे फ़ाइलों और फ़ोल्डरों को भी वापस नहीं करता है। दूसरे शब्दों में, os.listdir() विधि द्वारा खोजे गए सबफ़ोल्डर में कुछ भी वापस नहीं करता है।
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
os.listdir() फ़ंक्शन एक पैरामीटर स्वीकार करता है:निर्देशिका का फ़ाइल पथ जिसका फ़ाइल और फ़ोल्डर नाम आप पुनर्प्राप्त करना चाहते हैं।
लिस्टडिर मेथड का सिंटैक्स यहां दिया गया है:
os.listdir(path)
आइए एक उदाहरण के माध्यम से एक पायथन कार्यक्रम में इस पद्धति का उपयोग करने का तरीका दिखाने के लिए चलते हैं।
os.listdir() पायथन उदाहरण
मान लीजिए कि हम एक ऐसा प्रोग्राम बना रहे हैं जो पिछले एक दशक में नेटफ्लिक्स के शेयर बाजार के प्रदर्शन का विश्लेषण करता है। हमारे पास हमारे सभी कच्चे डेटा के साथ एक फ़ोल्डर (नाम:/home/data_analysis/netflix) है, और हमारे कार्यक्रम के चलने से पहले, हम यह सुनिश्चित करने के लिए जांचना चाहते हैं कि फ़ाइल raw_data_2019.csv है उस फ़ोल्डर के भीतर मौजूद है।
ठीक से काम करने के लिए, हमारे प्रोग्राम को उस विशेष फ़ाइल को उस विशेष फ़ोल्डर में संग्रहीत करने की आवश्यकता होती है।
हम /home/data_analysis/netflix में फ़ाइलों की सूची प्राप्त करने के लिए निम्न कोड का उपयोग कर सकते हैं कार्य निर्देशिका:
आयात ospath ='/home/data_analysis/netflix'files =os.listdir(path) f के लिए फाइलों में:प्रिंट(f)
हमारा प्रोग्राम निर्दिष्ट निर्देशिका में सभी फाइलों और फ़ोल्डरों की एक सूची पुनर्प्राप्त करता है और निम्नलिखित देता है:
README.mdapp.pyraw_data_2016.csvraw_data_2017.csvraw_data_2018.csvraw_data_2019.csvprocessed_data
अब, हम यह देखने के लिए जांच कर सकते हैं कि फ़ाइल raw_data_2019.csv . है या नहीं फोल्डर में है। जैसा कि आप देख सकते हैं, यह है।
आइए हमारे कोड को तोड़ दें। पहली पंक्ति में, हम os मॉड्यूल आयात करते हैं, जो हमें os.listdir() तक पहुँचने के लिए करने की आवश्यकता है। समारोह। फिर, हम पथ . नामक एक पायथन वैरिएबल घोषित करते हैं , जो उस पथ का नाम संग्रहीत करता है जिसकी सामग्री हम पुनर्प्राप्त करना चाहते हैं।
अगली पंक्ति में, हम /home/data_analysis/netflix में फ़ाइलों और फ़ोल्डरों की सूची प्राप्त करने के लिए os.listdir() विधि का उपयोग करते हैं। निर्देशिका। अंत में, हम लूप के लिए एक पायथन बनाते हैं। यह लूप os.listdir() . द्वारा निर्मित सूची में प्रत्येक आइटम के माध्यम से पुनरावृति करता है . हम पायथन प्रिंट () स्टेटमेंट का उपयोग करके प्रत्येक फ़ाइल का नाम कंसोल पर प्रिंट करते हैं।
/home/data_analysis/netflix निर्देशिका में छह फाइलें और एक निर्देशिका थी। निर्देशिका कहा जाता हैसंसाधित_डेटा और अन्य फाइलों से अलग है क्योंकि इसमें एक्सटेंशन नहीं है।
पायथन os.walk()
os.walk() फ़ंक्शन एक पेड़ के भीतर निहित फाइलों की एक सूची प्राप्त करता है। विधि एक पेड़ में प्रत्येक निर्देशिका पर पुनरावृत्त होती है। फिर, os.walk() किसी निर्देशिका और उसकी किसी भी उपनिर्देशिका में प्रत्येक फ़ाइल और फ़ोल्डर का नाम देता है।
os.walk() . के लिए सिंटैक्स विधि इस प्रकार है:
os.walk (टॉप, टॉपडाउन, ऑनरर, फॉलोलिंक्स)
os.walk() विधि चार पैरामीटर स्वीकार करती है:
- शीर्ष शीर्ष निर्देशिका है जिसका घटक फ़ाइल और फ़ोल्डर नाम आप पुनर्प्राप्त करना चाहते हैं (आवश्यक)
- टॉपडाउन , जब सही पर सेट होता है, तो निर्दिष्ट करता है कि निर्देशिकाओं को ऊपर से नीचे स्कैन किया जाना चाहिए। यदि यह मान गलत पर सेट है, तो निर्देशिकाओं को नीचे से ऊपर की ओर स्कैन किया जाएगा (वैकल्पिक)
- आतंक त्रुटि होने पर त्रुटि हैंडलर प्रदान करता है (वैकल्पिक)
- फ़ॉलोलिंक , अगर सही पर सेट है, तो सिस्टम लिंक (वैकल्पिक) द्वारा संदर्भित फ़ोल्डर पर जाता है
हम पहले दो मापदंडों पर ध्यान केंद्रित करने जा रहे हैं क्योंकि आतंक और फॉलोलिंक अधिक उन्नत हैं और आमतौर पर उपयोग नहीं किए जाते हैं।
os.walk() पायथन उदाहरण
मान लें कि हम /home/data_analysis/netflix में सभी फाइलों के नाम पुनर्प्राप्त करना चाहते हैं। निर्देशिका। हम यह भी पता लगाना चाहते हैं कि उस फ़ोल्डर में सभी उपनिर्देशिकाओं में क्या संलग्न है।
जैसा कि हमने ऊपर चर्चा की, नेटफ्लिक्स निर्देशिका में एक फ़ोल्डर है:संसाधित_डेटा . /home/data_analysis/netflix में सभी फाइलों के नाम पुनर्प्राप्त करने के लिए हम निम्नलिखित कोड का उपयोग कर सकते हैं निर्देशिका और इसकी उपनिर्देशिकाएं:
<पूर्व>आयात ospath ='/home/data_analysis/netflix' रूट, निर्देशिकाओं, फ़ाइलों के लिए os.walk(path, topdown=False) में:फाइलों में नाम के लिए:प्रिंट (os.path.join(root, name)) निर्देशिकाओं में नाम के लिए:प्रिंट(os.path.join(root, name))यहाँ हमारे कोड से आउटपुट है:
/home/data_analysis/netflix/README.md/home/data_analysis/netflix/app.py/home/data_analysis/netflix/raw_data_2016.csv/home/data_analysis/netflix/raw_data_2017.csv/home/data_analysis/netflix/ raw_data_2018.csv/home/data_analysis/netflix/raw_data_2019.csv/home/data_analysis/netflix/processed_data/home/data_analysis/netflix/processed_data/final.csv
हम os मॉड्यूल आयात करते हैं जिससे हम os.walk() . का संदर्भ देते हैं और os.path.join() हमारे कोड में बाद में तरीके। फिर, हम पथ . नामक एक चर घोषित करते हैं , जो उस पथ को संग्रहीत करता है जिसके फ़ाइल नाम हम खोजना चाहते हैं।
फिर हम इसके लिए . बनाते हैं लूप जो os.walk() . का उपयोग करता है पथ . में सभी फ़ाइलों और फ़ोल्डरों की सूची पुनर्प्राप्त करने के लिए निर्देशिका। वह लूप उन फ़ाइलों और फ़ोल्डरों के माध्यम से पुनरावृत्त होता है जो os.walk() देता है। यह ध्यान देने योग्य है कि हम topdown=False . निर्दिष्ट करते हैं os.walk() . में पैरामीटर विधि, जो हमारे कोड को एक टॉप-डाउन खोज करने के लिए कहती है।
हमारे के लिए लूप os.walk() विधि द्वारा खोजी गई प्रत्येक फ़ाइल और निर्देशिका के माध्यम से अतिरिक्त के लिए . का उपयोग करके पुनरावृति करता है लूप हम कंसोल में os.walk() फाइलों का प्रिंट आउट लेते हैं।
ऊपर दिए गए हमारे कोड में, हमारे के लिए . हैं लूप्स:
रूट, निर्देशिकाओं, फ़ाइलों के लिए os.walk(path):फाइलों में नाम के लिए:निर्देशिकाओं में नाम के लिए प्रिंट (os.path.join(root, name)):प्रिंट (os.path.join(root, नाम))
फिर, हमारा प्रोग्राम प्रत्येक फ़ाइल के रूट फ़ोल्डर को एक साथ जोड़ने के लिए os.path.join() का उपयोग करता है (यानी /home/data_analysis/netflix )और फ़ाइल का नाम (यानी raw_datra_2019.csv ) रूट फ़ोल्डर उस निर्देशिका पथ को संदर्भित करता है जिसमें फ़ाइल मौजूद है।
निष्कर्ष
आप पायथन का उपयोग कर सकते हैं listdir() ऐसा करने की विधि। आप वॉक () . का भी उपयोग कर सकते हैं विधि, जो निर्देशिका में सब कुछ सूचीबद्ध करती है, सहित उपनिर्देशिकाओं में कुछ भी।
इस गाइड ने उदाहरण प्रदान करते हुए पता लगाया कि os.listdir() . का उपयोग कैसे करें और os.walk() पायथन में निर्देशिका में फ़ाइलों और फ़ोल्डरों को सूचीबद्ध करने के तरीके। अब आपके पास एक विशेषज्ञ की तरह पाइथन में निर्देशिका में फ़ाइलों को सूचीबद्ध करने के लिए आवश्यक कौशल हैं!
पायथन में कोडिंग के बारे में अधिक जानने के लिए, हमारी पूरी हाउ टू लर्न पायथन गाइड पढ़ें।