makedirs ដើម្បីបង្កើត​ថត​ឋានានុក្រម​ជ្រៅ​ឡើងវិញ​ក្នុង Python

អាជីវកម្ម

កំហុសនៅពេលបង្កើតថតថ្មីជាមួយ os.mkdir() នៅក្នុងថតដែលមិនមាន

os.mkdir()នេះគឺជាវិធីសាស្ត្រដែលប្រើដើម្បីបង្កើតថតឯកសារ (ថតឯកសារ) នៅក្នុង Python ។ ប្រសិនបើអ្នកព្យាយាមបង្កើតថតថ្មីនៅក្នុងថតដែលមិនមាន នោះកំហុសនឹងកើតឡើង។(FileNotFoundError)

import os

os.mkdir('not_exist_dir/new_dir')
# FileNotFoundError

បង្កើត​ថត​ឡើងវិញ​ជាមួយ os.madeirs()

ប្រសិនបើអ្នកប្រើ os.makedirs() ជំនួសឱ្យ os.mkdir() វានឹងបង្កើតថតកម្រិតមធ្យម ដូច្នេះអ្នកអាចបង្កើតបញ្ជីឋានានុក្រមជ្រៅមួយឡើងវិញបាន។

os.makedirs('not_exist_dir/new_dir')

ក្នុងករណីឧទាហរណ៍នេះ វានឹងបង្កើតវាទាំងអស់ក្នុងពេលតែមួយ។ វាមិនអីទេប្រសិនបើមានថតកម្រិតមធ្យមថ្មីជាច្រើន។

  • ថតកម្រិតមធ្យម:not_exist_dir
  • ថតចុងក្រោយ:new_dir

ទោះយ៉ាងណាក៏ដោយ ប្រសិនបើថតបញ្ចប់មានរួចហើយ កំហុសនឹងកើតឡើង។(FileExistsError)

os.makedirs('exist_dir/exist_dir')
# FileExistsError

ប្រសិនបើមានអាគុយម៉ង់ exist_ok

ចាប់តាំងពី Python 3.2 អាគុយម៉ង់ exist_ok ត្រូវបានបន្ថែម ហើយប្រសិនបើ exist_ok=True នោះគ្មានកំហុសណាមួយនឹងកើតឡើងទេ ទោះបីជាមានថតបញ្ចប់រួចហើយក៏ដោយ។ ប្រសិនបើ​បញ្ជី​បញ្ចប់​មិនមាន​ទេ នោះ​នឹង​បង្កើត​បញ្ជី​ថ្មី ហើយ​ប្រសិនបើ​វា​មាន នោះ​នឹង​មិន​មាន​អ្វី​កើតឡើង​ទេ។ វាងាយស្រួលព្រោះអ្នកមិនចាំបាច់ពិនិត្យមើលអត្ថិភាពនៃថតស្ថានីយជាមុនទេ។

os.makedirs('exist_dir/exist_dir', exist_ok=True)

ប្រសិនបើអាគុយម៉ង់ exist_ok បាត់

ប្រសិនបើអ្នកមានកំណែចាស់របស់ Python ហើយមិនមានអាគុយម៉ង់ exist_ok នៅក្នុង os.madeirs អ្នកអាចប្រើ os.path.exists ដើម្បីកំណត់ថាតើមានថតបញ្ចប់ឬអត់ ហើយបន្ទាប់មកបង្កើតថ្មីមួយបានលុះត្រាតែមិនមាន ថតបញ្ចប់។

if not os.path.exists('exist_dir/exist_dir'):
    os.makedirs('exist_dir/exist_dir')
Copied title and URL