Python मध्ये फाइल आणि डिरेक्टरी नावांची (फोल्डर नावे) यादी मिळविण्यासाठी, os मॉड्यूल फंक्शन os.listdir() वापरा.
os.listdir(path=’.’)
पथाद्वारे निर्दिष्ट केलेल्या निर्देशिकेतील एंट्री नावे असलेली सूची मिळवते.
os — Miscellaneous operating system interfaces — Python 3.10.0 Documentation
os मॉड्यूल मानक लायब्ररीमध्ये समाविष्ट केले आहे आणि स्थापित करण्याची आवश्यकता नाही. तथापि, “आयात” आवश्यक आहे.
खालील माहिती येथे दिली आहे.
- फाइल आणि निर्देशिका दोन्ही नावांची यादी मिळवा.
- फक्त फाइल नावांची यादी मिळवा
- फक्त निर्देशिका नावांची यादी मिळवा
फाइल (डिरेक्टरी) रचनेचे उदाहरण खालीलप्रमाणे आहे.
. └── testdir ├── dir1 ├── dir2 ├── file1 ├── file2.txt └── file3.jpg
os.listdir() व्यतिरिक्त, तुम्ही फाइल आणि डिरेक्टरी नावांची यादी (फोल्डरची नावे) मिळवण्यासाठी ग्लोब मॉड्यूल देखील वापरू शकता. ग्लोब तुम्हाला वाइल्डकार्ड्स (*), इ. वापरून अटी निर्दिष्ट करण्याची परवानगी देतो आणि उपडिरेक्टरीजचा आवर्ती समावेश करतो.
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']