"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं एकाधिक निर्देशिकाओं में फ़ाइलों को कुशलतापूर्वक खोजने के लिए पायथन का उपयोग कैसे कर सकता हूं?

मैं एकाधिक निर्देशिकाओं में फ़ाइलों को कुशलतापूर्वक खोजने के लिए पायथन का उपयोग कैसे कर सकता हूं?

2024-11-08 को प्रकाशित
ब्राउज़ करें:907

How can I use Python to efficiently search for files across multiple directories?

Python में एक फ़ाइल ढूंढें

Python में फ़ाइलें ढूंढना एक चुनौती हो सकती है जब फ़ाइल का स्थान विभिन्न प्रणालियों में भिन्न होता है। सौभाग्य से, पायथन os.walk मॉड्यूल प्रदान करता है जो आपको निर्देशिकाओं को पार करने और फ़ाइलों को आसानी से ढूंढने में सक्षम बनाता है।

फ़ाइल खोज के लिए os.walk

os.walk एक जनरेटर बनाता है ऑब्जेक्ट जो एक निर्देशिका और उसकी उपनिर्देशिकाओं पर पुनरावृत्त होता है, प्रत्येक पुनरावृत्ति के लिए तीन टुपल्स उत्पन्न करता है:

  • root (str): वर्तमान निर्देशिका के लिए पूर्ण पथ
  • dirs (सूची): की सूची वर्तमान निर्देशिका के भीतर उपनिर्देशिकाएं
  • फ़ाइलें (सूची): वर्तमान निर्देशिका के भीतर फ़ाइलों की सूची

एकल फ़ाइल ढूंढना

ढूंढना किसी विशिष्ट फ़ाइल की पहली घटना, बस प्राप्त टुपल्स पर पुनरावृति करें और जांचें कि फ़ाइल का नाम फ़ाइलों की सूची में है या नहीं:

import os

def find(name, path):
    for root, dirs, files in os.walk(path):
        if name in files:
            return os.path.join(root, name)

किसी फ़ाइल की सभी घटनाओं का पता लगाना

किसी फ़ाइल की सभी घटनाओं को खोजने के लिए, मिलानों को संग्रहीत करने के लिए एक सूची बनाएं :

def find_all(name, path):
    result = []
    for root, dirs, files in os.walk(path):
        if name in files:
            result.append(os.path.join(root, name))
    return result

मिलान फ़ाइल पैटर्न

किसी पैटर्न से मेल खाने वाली फ़ाइलों को खोजने के लिए, fnmatch मॉड्यूल का उपयोग करें:

import os, fnmatch
def find(pattern, path):
    result = []
    for root, dirs, files in os.walk(path):
        for name in files:
            if fnmatch.fnmatch(name, pattern):
                result.append(os.path.join(root, name))
    return result

find('*.txt', '/path/to/dir')
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3