ការបង្កើត និងរក្សាទុកឯកសារនៅក្នុងថតថ្មីនៅក្នុង Python

អាជីវកម្ម

ផ្នែកខាងក្រោមពន្យល់ពីរបៀបបង្កើត និងរក្សាទុកឯកសារថ្មីនៅក្នុង Python ដោយប្រើថតថ្មី (ថតឯកសារ) ជាទិសដៅ។

  • កំហុសនៅពេលបញ្ជាក់ថតដែលមិនមានជាមួយ open()(FileNotFoundError)
  • os.makedirs()បង្កើតថតឯកសារ
  • កូដឧទាហរណ៍ដើម្បីបង្កើតឯកសារថ្មីជាមួយគោលដៅ

ខាងក្រោមនេះគឺជាឧទាហរណ៍នៃឯកសារអត្ថបទ។

នៅពេលរក្សាទុករូបភាព វាអាស្រ័យលើបណ្ណាល័យថាតើអ្នកអាចបញ្ជាក់ផ្លូវដែលរួមបញ្ចូលថតដែលមិនមាន (ឬថាតើវានឹងបង្កើតដោយស្វ័យប្រវត្តិប្រសិនបើវាមិនមាន)។
FileNotFoundErrorប្រសិនបើកំហុសនេះកើតឡើង អ្នកអាចបង្កើតថតថ្មីមួយជាមួយ os.madeirs() មុនពេលប្រតិបត្តិមុខងារដើម្បីរក្សាទុក ដូចក្នុងឧទាហរណ៍ខាងក្រោម។

កំហុសនៅពេលបញ្ជាក់ថតដែលមិនមានជាមួយ open()(FileNotFoundError)

នៅពេលបង្កើតឯកសារថ្មីជាមួយនឹងមុខងារដែលភ្ជាប់មកជាមួយ open() កំហុសកើតឡើងប្រសិនបើផ្លូវដែលមានថតថ្មី (ថតដែលមិនមាន) ត្រូវបានបញ្ជាក់ជាអាគុយម៉ង់ដំបូងជាទិសដៅ។(FileNotFoundError)

open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError

អាគុយម៉ង់ដំបូងនៃ open() អាចជាផ្លូវដាច់ខាត ឬផ្លូវដែលទាក់ទងទៅនឹងថតបច្ចុប្បន្ន។

សម្រាប់ការប្រើប្រាស់ជាមូលដ្ឋាននៃ open() ដូចជាការបង្កើតឯកសារថ្មីនៅក្នុងថតដែលមានស្រាប់ ឬការសរសេរជាន់លើ ឬបន្ថែមលើឯកសារដែលមានស្រាប់ សូមមើលអត្ថបទខាងក្រោម។

បង្កើតថតឯកសារ(os.makedirs())

នៅពេលបង្កើតឯកសារថ្មីនៅក្នុងថតឯកសារដែលមិនមាន ចាំបាច់ត្រូវបង្កើតថតឯកសារមុនពេលបើក () ។

ប្រសិនបើអ្នកកំពុងប្រើ Python 3.2 ឬខ្ពស់ជាងនេះ វាងាយស្រួលប្រើ os.makedirs() ជាមួយនឹងអាគុយម៉ង់ exist_ok=True។ ទោះបីជាមានថតគោលដៅរួចហើយក៏ដោយ ក៏គ្មានកំហុសកើតឡើងដែរ ហើយថតអាចត្រូវបានបង្កើតក្នុងពេលតែមួយ។

import os

os.makedirs(new_dir_path, exist_ok=True)

ប្រសិនបើអ្នកមានកំណែចាស់របស់ Python ហើយមិនមានអាគុយម៉ង់ exist_ok ក្នុង os.makedirs() អ្នកនឹងទទួលបានកំហុសប្រសិនបើអ្នកបញ្ជាក់ផ្លូវទៅកាន់ថតដែលមាន ដូច្នេះសូមប្រើ os.path.exists() ដើម្បីពិនិត្យមើល អត្ថិភាពនៃថតដំបូង។

if not os.path.exists(new_dir_path):
    os.makedirs(new_dir_path)

សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានលម្អិត។

កូដឧទាហរណ៍ដើម្បីបង្កើតឯកសារថ្មីជាមួយគោលដៅ

ខាងក្រោមនេះគឺជាឧទាហរណ៍កូដនៃមុខងារដែលបង្កើត និងរក្សាទុកឯកសារថ្មីដោយបញ្ជាក់ថតទិសដៅ។

អាគុយម៉ង់ទីមួយ dir_path គឺជាផ្លូវនៃថតទិសដៅ ឈ្មោះឯកសារអាគុយម៉ង់ទីពីរ គឺជាឈ្មោះឯកសារថ្មីដែលត្រូវបង្កើត ហើយអាគុយម៉ង់ទីបី file_content គឺជាខ្លឹមសារដែលត្រូវសរសេរ ដែលនីមួយៗបានបញ្ជាក់ជាខ្សែអក្សរ។

ប្រសិនបើថតដែលបានបញ្ជាក់មិនមានទេ បង្កើតថ្មីមួយ។

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()។

ផងដែរ របៀបបើក() ត្រូវបានបញ្ជាក់ជាអាគុយម៉ង់។ សម្រាប់ឯកសារអត្ថបទ លំនាំដើម ‘w’ គឺល្អ ប៉ុន្តែប្រសិនបើអ្នកចង់បង្កើតឯកសារគោលពីរ set mode=’wb’។