အောက်ပါအပိုင်းများသည် ဦးတည်ရာအဖြစ် လမ်းညွှန်အသစ် (ဖိုင်တွဲ) ကိုအသုံးပြု၍ Python တွင် ဖိုင်အသစ်တစ်ခုကို ဖန်တီးပြီး သိမ်းဆည်းနည်းကို ရှင်းပြထားသည်။
- open() ဖြင့် တည်ရှိခြင်းမရှိသော လမ်းညွှန်ကို သတ်မှတ်ရာတွင် အမှားအယွင်း(
FileNotFoundError
) os.makedirs()
လမ်းညွှန်တစ်ခုဖန်တီးပါ။- ဦးတည်ရာတစ်ခုဖြင့် ဖိုင်အသစ်တစ်ခုဖန်တီးရန် နမူနာကုဒ်
အောက်ဖော်ပြပါသည် စာသားဖိုင်တစ်ခု၏ ဥပမာတစ်ခုဖြစ်သည်။
ပုံများကို သိမ်းဆည်းသည့်အခါ၊ တည်ရှိခြင်းမရှိသော လမ်းညွှန်တစ်ခုပါ၀င်သည့် လမ်းကြောင်းကို သင်သတ်မှတ်နိုင်သည်ရှိမရှိ (သို့မဟုတ် ၎င်းမရှိလျှင် ၎င်းသည် အလိုအလျောက် ဖန်တီးပေးမည်) ပေါ်တွင် မူတည်သည်။FileNotFoundError
အကယ်၍ ဤအမှားဖြစ်ပေါ်ပါက၊ သင်သည် အောက်ပါဥပမာအတိုင်း သိမ်းဆည်းရန် လုပ်ဆောင်ချက်ကို မလုပ်ဆောင်မီ os.madeirs() ဖြင့် လမ်းညွှန်အသစ်တစ်ခု ဖန်တီးနိုင်ပါသည်။
open() ဖြင့် တည်ရှိခြင်းမရှိသော လမ်းညွှန်ကို သတ်မှတ်ရာတွင် အမှားအယွင်း(FileNotFoundError)
built-in လုပ်ဆောင်ချက် open() ဖြင့် ဖိုင်အသစ်ကို ဖန်တီးသည့်အခါ လမ်းကြောင်းအသစ် (မရှိသောလမ်းညွှန်) ကို ဦးတည်ရာအဖြစ် ပထမအငြင်းအခုံအဖြစ် သတ်မှတ်ပါက အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ပါသည်။(FileNotFoundError
)
open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError
open() ၏ ပထမအငြင်းအခုံသည် absolute path သို့မဟုတ် လက်ရှိ directory နှင့် ဆက်စပ်နေသော လမ်းကြောင်းတစ်ခု ဖြစ်နိုင်သည်။
ရှိပြီးသား ဖိုင်အသစ်တစ်ခု ဖန်တီးခြင်း၊ သို့မဟုတ် ရှိပြီးသားဖိုင်တစ်ခုသို့ ထပ်ရေးခြင်း သို့မဟုတ် ထပ်ဖြည့်ခြင်းကဲ့သို့သော open() ၏ အခြေခံအသုံးပြုမှုအတွက်၊ အောက်ပါဆောင်းပါးကို ကိုးကားပါ။
လမ်းညွှန်တစ်ခုဖန်တီးပါ။(os.makedirs())
တည်ရှိခြင်းမရှိသော လမ်းညွှန်တစ်ခုတွင် ဖိုင်အသစ်တစ်ခုကို ဖန်တီးသည့်အခါ၊ open() မတိုင်မီ လမ်းညွှန်ကို ဖန်တီးရန် လိုအပ်သည်။
အကယ်၍ သင်သည် Python 3.2 သို့မဟုတ် နောက်ပိုင်းတွင် အသုံးပြုနေပါက၊ argument exist_ok=True ဖြင့် os.makedirs() ကို အသုံးပြုရန် အဆင်ပြေပါသည်။ ပစ်မှတ် directory ရှိနှင့်ပြီးသားဖြစ်လျှင်ပင် error ပေါ်လာပြီး directory ကို တစ်ကြိမ်တည်းဖန်တီးနိုင်ပါသည်။
import os
os.makedirs(new_dir_path, exist_ok=True)
အကယ်၍ သင့်တွင် Python ၏ ဗားရှင်းအဟောင်းရှိပြီး os.makedirs() တွင် argument တွင် exist_ok မပါပါက ရှိနှင့်နေသော လမ်းညွှန်တစ်ခုသို့ လမ်းကြောင်းကို သတ်မှတ်ပါက အမှားအယွင်းတစ်ခု ရရှိလိမ့်မည်၊ ထို့ကြောင့် စစ်ဆေးရန် os.path.exists() ကို အသုံးပြုပါ။ directory ၏တည်ရှိမှုကိုပထမ။
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
အသေးစိတ်အတွက် အောက်ပါဆောင်းပါးကို ကြည့်ပါ။
- ဆက်စပ်ဆောင်းပါးများ-Python တွင် နက်နဲသော hierarchical directory များကို ထပ်ခါတလဲလဲ ဖန်တီးရန် makedirs
ဦးတည်ရာတစ်ခုဖြင့် ဖိုင်အသစ်တစ်ခုဖန်တီးရန် နမူနာကုဒ်
အောက်ပါသည် ဦးတည်ရာလမ်းကြောင်းကို သတ်မှတ်ခြင်းဖြင့် ဖိုင်အသစ်တစ်ခုကို ဖန်တီးပြီး သိမ်းဆည်းသည့် လုပ်ဆောင်ချက်တစ်ခု၏ ကုဒ်နမူနာတစ်ခုဖြစ်သည်။
ပထမအငြင်းအခုံ dir_path သည် ဦးတည်ရာလမ်းကြောင်း၏လမ်းကြောင်းဖြစ်ပြီး၊ ဒုတိယအငြင်းပွားမှု ဖိုင်အမည်သည် ဖန်တီးမည့်ဖိုင်အသစ်၏အမည်ဖြစ်ပြီး တတိယအငြင်းအခုံဖိုင်_အကြောင်းအရာသည် စာကြောင်းတစ်ခုစီအဖြစ် သတ်မှတ်ထားသည့်တစ်ခုစီတွင် ရေးသားရမည့်အကြောင်းအရာဖြစ်သည်။
သတ်မှတ်ထားသောလမ်းညွှန်ချက်မရှိပါက အသစ်တစ်ခုဖန်တီးပါ။
import os
def save_file_at_dir(dir_path, filename, file_content, mode='w'):
os.makedirs(dir_path, exist_ok=True)
with open(os.path.join(dir_path, filename), mode) as f:
f.write(file_content)
အောက်ပါအတိုင်းအသုံးပြုပါ။
save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')
ဤကိစ္စတွင်၊ “ စာသားအသစ်” ပါ၀င်သော new_file.txt ဖိုင်ကို new_dir\sub_dir တွင် ဖန်တီးပါမည်။ တစ်နည်းဆိုရသော် အောက်ပါဖိုင်ကို အသစ်ဖန်တီးမည်ဖြစ်သည်။new_dir/sub_dir/new_file.txt
လမ်းညွှန်နှင့် ဖိုင်အမည်များကို os.path.join() ဖြင့် ပေါင်းစပ်ခြင်း။
ထို့အပြင် open() ၏မုဒ်ကို အငြင်းအခုံတစ်ခုအဖြစ် သတ်မှတ်သည်။ စာသားဖိုင်များအတွက်၊ မူရင်း ‘w’ သည် ကောင်းမွန်သော်လည်း သင်သည် binary ဖိုင်ကို ဖန်တီးလိုပါက၊ set mode=’wb’။