Python ရှိ ဖိုင်နှင့် လမ်းညွှန်အမည်များစာရင်းကို ရယူပါ။

စီးပွားရေးလုပ်ငန်း

Python ရှိ ဖိုင်နှင့် လမ်းညွှန်အမည်များ (ဖိုင်တွဲအမည်များ) စာရင်းကို ရယူရန် os module လုပ်ဆောင်ချက် os.listdir() ကို အသုံးပြုပါ။

os.listdir(path=’.’)
လမ်းကြောင်းအလိုက် သတ်မှတ်ထားသော လမ်းညွှန်တွင် ထည့်သွင်းမှုအမည်များပါရှိသော စာရင်းကို ပြန်ပေးသည်။
os — Miscellaneous operating system interfaces — Python 3.10.0 Documentation

os module ကို စံစာကြည့်တိုက်တွင် ထည့်သွင်းထားပြီး ထည့်သွင်းရန် မလိုအပ်ပါ။ သို့သော် “ သွင်းကုန်” လိုအပ်သည်။

အောက်ပါအချက်အလက်များကို ဤနေရာတွင် ဖော်ပြပေးထားပါသည်။

  • ဖိုင်နှင့် လမ်းညွှန်အမည်များစာရင်းကို ရယူပါ။
  • ဖိုင်အမည်များစာရင်းကိုသာ ရယူပါ။
  • လမ်းညွှန်အမည်များကိုသာ ရယူပါ။

အောက်ဖော်ပြပါပုံသည် ဖိုင် (directory) တည်ဆောက်ပုံ ဥပမာတစ်ခုဖြစ်သည်။

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

os.listdir() အပြင် ဖိုင်နှင့် လမ်းညွှန်အမည်များ (ဖိုင်တွဲအမည်များ) စာရင်းကို ရယူရန် glob module ကို အသုံးပြုနိုင်သည်။ glob သည် သင့်အား wildcards (*) စသည်တို့ကို အသုံးပြု၍ အခြေအနေများကို သတ်မှတ်နိုင်စေပြီး လမ်းကြောင်းခွဲများကို ထပ်ခါတလဲလဲ ထည့်သွင်းနိုင်သည်။

Python 3.4 နှင့် နောက်ပိုင်းတွင်၊ လမ်းကြောင်းများကို အရာဝတ္ထုများအဖြစ် စီမံခန့်ခွဲနိုင်သည့် pathlib module ကို အသုံးပြု၍ ဖိုင်များနှင့် လမ်းညွှန်များစာရင်းကိုလည်း ရရှိနိုင်သည်။ အထက်ဖော်ပြပါ globs ကဲ့သို့၎င်းကို အခြေအနေအရနှင့် ထပ်ကာထပ်ကာ အသုံးပြုနိုင်သည်။

ဖိုင်နှင့် လမ်းညွှန်အမည်များစာရင်းကို ရယူပါ။

အကယ်၍ သင်သည် 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() function ၏ argument အဖြစ် ဖိုင်အမည်ကိုသာ ဖြတ်သန်းခြင်း အလုပ်မလုပ်ပါ၊ ထို့ကြောင့် အောက်တွင် ပြထားသည့်အတိုင်း လမ်းကြောင်း အပြည့်အစုံကို ဖြတ်သန်းပါ။
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']