Python میں فائل اور ڈائریکٹری کے ناموں کی فہرست حاصل کریں۔

کاروبار

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']
Copied title and URL