पाइथनमा फाइल र डाइरेक्टरी नामहरूको सूची प्राप्त गर्नुहोस्।

व्यापार

पाइथनमा फाइल र डाइरेक्टरी नामहरू (फोल्डर नामहरू) को सूची प्राप्त गर्न, os मोड्युल प्रकार्य os.listdir() प्रयोग गर्नुहोस्।

os.listdir(path=’.’)
पथद्वारा निर्दिष्ट डाइरेक्टरीमा प्रविष्टि नामहरू समावेश भएको सूची फर्काउँछ।
os — Miscellaneous operating system interfaces — Python 3.10.0 Documentation

ओएस मोड्युल मानक पुस्तकालयमा समावेश गरिएको छ र स्थापना गर्न आवश्यक छैन। यद्यपि, “आयात” आवश्यक छ।

निम्न जानकारी यहाँ प्रदान गरिएको छ।

  • दुबै फाइल र डाइरेक्टरी नामहरूको सूची प्राप्त गर्नुहोस्।
  • फाइल नामहरूको सूची मात्र प्राप्त गर्नुहोस्
  • डाइरेक्टरी नामहरूको सूची मात्र प्राप्त गर्नुहोस्

निम्न फाइल (डाइरेक्टरी) संरचना को एक उदाहरण हो।

.
└── testdir
    ├── dir1
    ├── dir2
    ├── file1
    ├── file2.txt
    └── file3.jpg

os.listdir() को अतिरिक्त, तपाईंले फाइल र डाइरेक्टरी नामहरू (फोल्डर नामहरू) को सूची प्राप्त गर्न ग्लोब मोड्युल पनि प्रयोग गर्न सक्नुहुन्छ। glob ले तपाईंलाई वाइल्डकार्डहरू (*), आदि प्रयोग गरी सर्तहरू निर्दिष्ट गर्न अनुमति दिन्छ, र पुनरावर्ती रूपमा उपनिर्देशिकाहरू समावेश गर्दछ।

Python 3.4 र पछि, pathlib मोड्युल प्रयोग गरेर फाइल र डाइरेक्टरीहरूको सूची प्राप्त गर्न पनि सम्भव छ, जसले पथहरूलाई वस्तुको रूपमा हेरफेर गर्न सक्छ। माथिका ग्लोबहरू जस्तै, यो पनि सशर्त र पुनरावर्ती प्रयोग गर्न सकिन्छ।

दुबै फाइल र डाइरेक्टरी नामहरूको सूची प्राप्त गर्नुहोस्।

यदि तपाइँ os.listdir() को रूपमा प्रयोग गर्नुहुन्छ भने, यसले फाइल र डाइरेक्टरी नामहरूको सूची फिर्ता गर्नेछ।

import os

path = "./testdir"

files = os.listdir(path)
print(type(files))  # <class 'list'>
print(files)        # ['dir1', 'dir2', 'file1', 'file2.txt', 'file3.jpg']

तपाईंले के पाउनुभयो त्यो पथ स्ट्रिङहरूको सूची हो।

फाइल नामहरूको सूची मात्र प्राप्त गर्नुहोस्

यदि तपाइँ केवल फाइल नामहरूको सूची प्राप्त गर्न चाहनुहुन्छ भने, पथ फाइल हो कि भनेर निर्धारण गर्न os.path.isfile() प्रकार्य प्रयोग गर्नुहोस्। os.path.isfile() प्रकार्यको आर्गुमेन्टको रूपमा फाइल नाम मात्र पास गर्नाले काम गर्दैन, त्यसैले तल देखाइए अनुसार पूरा पथ पास गर्नुहोस्।
os.path.isfile(os.path.join(path, f))

files = os.listdir(path)
files_file = [f for f in files if os.path.isfile(os.path.join(path, f))]
print(files_file)   # ['file1', 'file2.txt', 'file3.jpg']

डाइरेक्टरी नामहरूको सूची मात्र प्राप्त गर्नुहोस्

यदि तपाइँ डाइरेक्टरी नामहरूको सूची मात्र प्राप्त गर्न चाहनुहुन्छ भने, os.path.isdir() लाई त्यसै तरिकाले प्रयोग गर्नुहोस्।

files = os.listdir(path)
files_dir = [f for f in files if os.path.isdir(os.path.join(path, f))]
print(files_dir)    # ['dir1', 'dir2']