पायथन: डिरेक्टरीमधून सूचीमध्ये सर्व फायली सूचीबद्ध करणे आणि जोडणे

पायथन: डिरेक्टरीमधून सूचीमध्ये सर्व फायली सूचीबद्ध करणे आणि जोडणे
Python

पायथनमध्ये फाइल व्यवस्थापन शोधत आहे

प्रोग्रामिंगमध्ये निर्देशिका आणि फाइल्ससह कार्य करणे हे एक सामान्य कार्य आहे. Python मध्ये, सर्व फाईल्स डिरेक्टरीमध्ये सूचीबद्ध करण्यासाठी आणि पुढील प्रक्रियेसाठी सूचीमध्ये संग्रहित करण्याच्या अनेक पद्धती आहेत.

हा लेख कोड उदाहरणे आणि स्पष्टीकरण प्रदान करून, हे साध्य करण्याचे कार्यक्षम मार्ग शोधेल. तुम्ही नवशिक्या असाल किंवा अनुभवी प्रोग्रामर असाल, ही तंत्रे पायथनमधील तुमची फाइल व्यवस्थापन कार्ये सुव्यवस्थित करण्यात मदत करतील.

आज्ञा वर्णन
os.listdir(directory) निर्दिष्ट निर्देशिकेतील नोंदींची नावे असलेली सूची मिळवते.
os.path.isfile(path) निर्दिष्ट मार्ग विद्यमान नियमित फाइल आहे की नाही ते तपासते.
os.path.join(path, *paths) एक किंवा अधिक पथ घटकांमध्ये हुशारीने सामील होतो, एकच मार्ग परत करतो.
Path(directory).iterdir() निर्दिष्ट निर्देशिकेतील सर्व फायली आणि उप-डिरेक्टरीजचा पुनरावृत्ती करणारा परत करतो.
file.is_file() जर पथ नियमित फाइल असेल किंवा फाईलची प्रतिकात्मक लिंक असेल तर सत्य मिळवते.
os.walk(directory) डिरेक्टरी ट्रीमध्ये फाईलची नावे व्युत्पन्न करते, एकतर वर-खाली किंवा खाली-वर चालत.

पायथन डिरेक्टरी ट्रॅव्हर्सल समजून घेणे

वर दिलेले स्क्रिप्ट पायथन वापरून डिरेक्टरीमधील सर्व फाईल्स सूचीबद्ध करण्यासाठी विविध पद्धती दर्शवतात. पहिली स्क्रिप्ट वापरते os मॉड्यूल, जे Python मध्ये अंगभूत मॉड्यूल आहे जे ऑपरेटिंग सिस्टम-अवलंबित कार्यक्षमता वापरण्याचा मार्ग प्रदान करते. वापरून , आम्ही निर्दिष्ट निर्देशिकेतील सर्व नोंदींची यादी मिळवू शकतो. नंतर, या नोंदींद्वारे पुनरावृत्ती करून आणि प्रत्येकासह तपासा os.path.isfile(path), आम्ही निर्देशिका फिल्टर करू शकतो आणि आमच्या सूचीमध्ये फक्त फाइल्स जोडू शकतो. दुसरी स्क्रिप्ट रोजगार देते pathlib मॉड्यूल, जे फाइलसिस्टम पथांसाठी अधिक ऑब्जेक्ट-देणारं दृष्टीकोन देते. वापरून Path(directory).iterdir(), आम्हाला डिरेक्टरीमधील सर्व नोंदींचा एक पुनरावर्तक मिळतो, आणि यासह फिल्टर करून , आम्ही फक्त फाइल्स गोळा करू शकतो.

तिसरी स्क्रिप्ट उपनिर्देशिकांमधील फाइल्ससह अधिक व्यापक फाइल सूचीसाठी डिझाइन केलेली आहे. ते वापरते os.walk(directory), एक जनरेटर जो निर्देशिकेचा मार्ग, उपनिर्देशिका, आणि निर्दिष्ट निर्देशिकेत रुजलेल्या ट्रीमधील प्रत्येक डिरेक्ट्रीसाठी फाइलनावे मिळवतो. हे आम्हांला डिरेक्टरी ट्री वरून वारंवार मार्गक्रमण करण्यास आणि सर्व फाइलनावे गोळा करण्यास अनुमती देते. या स्क्रिप्ट्स पायथनमध्ये डिरेक्टरी ट्रॅव्हर्सल हाताळण्याचे कार्यक्षम मार्ग दाखवतात, दोन्हीसह साधेपणा देतात os आणि सह वर्धित कार्यक्षमता pathlib. या आदेश आणि पद्धती समजून घेणे फाईल व्यवस्थापन कार्यांसाठी महत्त्वपूर्ण आहे, फायली योग्यरित्या ओळखल्या गेल्या आहेत आणि निर्देशिका संरचनेत प्रक्रिया केल्या आहेत याची खात्री करणे.

पायथनच्या ओएस मॉड्यूलचा वापर करून डिरेक्टरीमध्ये फायली सूचीबद्ध करणे

डिरेक्टरी ट्रॅव्हर्सलसाठी os मॉड्यूल वापरणे

import os

def list_files_os(directory):
    files = []
    for filename in os.listdir(directory):
        if os.path.isfile(os.path.join(directory, filename)):
            files.append(filename)
    return files

# Example usage
directory_path = '/path/to/directory'
files_list = list_files_os(directory_path)
print(files_list)

पायथनचे पॅथलिब मॉड्यूल वापरून निर्देशिका सामग्री आणत आहे

फाइल सूचीसाठी पॅथलिब मॉड्यूल वापरणे

os.walk सह आवर्ती फाइल सूची

रिकर्सिव्ह डिरेक्टरी ट्रॅव्हर्सलसाठी os.walk वापरणे

import os

def list_files_recursive(directory):
    files = []
    for dirpath, _, filenames in os.walk(directory):
        for filename in filenames:
            files.append(os.path.join(dirpath, filename))
    return files

# Example usage
directory_path = '/path/to/directory'
files_list = list_files_recursive(directory_path)
print(files_list)

Python मध्ये प्रगत फाइल सूची तंत्र

वापरून निर्देशिकेत फाइल्स सूचीबद्ध करण्याच्या मूलभूत पद्धतींच्या पलीकडे os आणि pathlib मॉड्युल्स, विशेष कार्यांसाठी वापरल्या जाऊ शकणाऱ्या अधिक प्रगत तंत्रे आहेत. अशी एक पद्धत वापरत आहे glob मॉड्यूल, जे युनिक्स शेलद्वारे वापरलेल्या नियमांनुसार निर्दिष्ट पॅटर्नशी जुळणारी सर्व पथनावे शोधते. विशिष्ट विस्तार किंवा नमुन्यांसह फायली सूचीबद्ध करण्यासाठी हे विशेषतः उपयुक्त असू शकते. उदाहरणार्थ, वापरणे glob.glob('*.txt') वर्तमान निर्देशिकेतील सर्व मजकूर फायली सूचीबद्ध करेल. ही पद्धत फायलींची नावे किंवा एक्स्टेंशनच्या आधारावर डिरेक्टरी एंट्रीद्वारे व्यक्तिचलितपणे पुनरावृत्ती न करता फिल्टर करण्याचा एक लवचिक मार्ग प्रदान करते.

आणखी एक प्रगत तंत्र वापरणे आहे fnmatch मॉड्यूल, जे युनिक्स-शैलीतील ग्लोब पॅटर्नशी फाइलनावांची तुलना करण्यासाठी फंक्शन प्रदान करते. हे सह संयोगाने वापरले जाऊ शकते os.listdir() किंवा pathlib अधिक जटिल नमुन्यांवर आधारित फायली फिल्टर करण्यासाठी. उदाहरणार्थ, fnmatch.filter(os.listdir(directory), '*.py') निर्दिष्ट निर्देशिकेतील सर्व पायथन फाइल्सची सूची परत करेल. याव्यतिरिक्त, मोठ्या डेटासेटसाठी किंवा कार्यप्रदर्शन-गंभीर अनुप्रयोगांसाठी, वापरून १७ पासून os पेक्षा मॉड्यूल अधिक कार्यक्षम असू शकते listdir कारण ते फाइल नावांसह फाइल विशेषता पुनर्प्राप्त करते, सिस्टम कॉलची संख्या कमी करते. ही प्रगत तंत्रे समजून घेतल्याने Python मध्ये अधिक शक्तिशाली आणि लवचिक फाइल व्यवस्थापन समाधान मिळू शकते.

Python मध्ये निर्देशिका सूचीबद्दल वारंवार विचारले जाणारे प्रश्न

  1. मी डिरेक्टरी आणि त्याच्या सबडिरेक्टरीमधील सर्व फाईल्सची यादी कशी करू?
  2. वापरा os.walk(directory) डिरेक्टरी ट्री पार करण्यासाठी आणि सर्व फाईल्सची यादी करा.
  3. मी विशिष्ट विस्तारासह फायलींची यादी कशी करू शकतो?
  4. वापरा २१ किंवा fnmatch.filter(os.listdir(directory), '*.extension').
  5. यांच्यात काय फरक आहे os.listdir() आणि २४?
  6. २४ हे अधिक कार्यक्षम आहे कारण ते फाइल नावांसह फाइल विशेषता पुनर्प्राप्त करते.
  7. मी डिरेक्टरीमध्ये लपलेल्या फाइल्सची यादी करू शकतो का?
  8. होय, वापरून os.listdir() लपविलेल्या फाइल्सची यादी करेल (ज्या डॉटने सुरू होतात).
  9. मी सूचीमधून निर्देशिका कशा वगळू?
  10. वापरा २७ किंवा सह pathlib फक्त फाइल्स फिल्टर करण्यासाठी.
  11. फाइल्सची यादी क्रमवारी लावणे शक्य आहे का?
  12. होय, आपण वापरू शकता sorted() फायलींच्या सूचीवरील कार्य.
  13. मी मोठ्या डिरेक्टरी कार्यक्षमतेने कसे हाताळू शकतो?
  14. वापरा २४ मोठ्या निर्देशिकांसह चांगल्या कामगिरीसाठी.
  15. मी फाइल आकार आणि बदल तारीख मिळवू शकता?
  16. होय, वापरा os.stat() किंवा ३३ फाइल मेटाडेटा पुनर्प्राप्त करण्यासाठी.
  17. क्रॉस-प्लॅटफॉर्म अनुकूलतेसाठी कोणते मॉड्यूल सर्वोत्तम आहेत?
  18. pathlib चांगल्या क्रॉस-प्लॅटफॉर्म सुसंगततेसाठी मॉड्यूलची शिफारस केली जाते.
  19. मी फक्त डिरेक्टरी कशी सूचीबद्ध करू?
  20. वापरा os.path.isdir() किंवा ३६ निर्देशिका फिल्टर करण्यासाठी.

पायथनमध्ये निर्देशिका सूची गुंडाळत आहे

शेवटी, पायथन डिरेक्टरीमध्ये फायली सूचीबद्ध करण्याचे अनेक मार्ग ऑफर करते, मूलभूत पद्धती वापरून os आणि pathlib अधिक प्रगत तंत्रांचा समावेश असलेले मॉड्यूल glob आणि fnmatch. प्रत्येक पद्धतीचे स्वतःचे फायदे आहेत, ज्यामुळे ते वेगवेगळ्या वापरासाठी योग्य बनते. ही तंत्रे समजून घेतल्याने फाइल व्यवस्थापन कार्ये कार्यक्षमतेने हाताळण्याची तुमची क्षमता वाढते, तुम्ही तुमच्या अर्जानुसार आवश्यक असलेल्या फाइल्सची अचूक यादी आणि प्रक्रिया करू शकता याची खात्री करून.