Python හි නව නාමාවලියක ගොනු සෑදීම සහ සුරැකීම

ව්යාපාරික

ගමනාන්තය ලෙස නව නාමාවලියක් (ෆෝල්ඩරයක්) භාවිතා කරමින් Python හි නව ගොනුවක් සාදා සුරකින්න ආකාරය පහත කොටස් විස්තර කරයි.

  • open() සමඟ නොපවතින නාමාවලියක් සඳහන් කිරීමේදී දෝෂයකි(FileNotFoundError)
  • os.makedirs()නාමාවලියක් සාදන්න
  • ගමනාන්තයක් සහිත නව ගොනුවක් සෑදීමට උදාහරණ කේතය

පහත දැක්වෙන්නේ පෙළ ගොනුවක උදාහරණයකි.

පින්තූර ගබඩා කිරීමේදී, ඔබට නොපවතින නාමාවලියක් ඇතුළත් මාර්ගයක් නියම කළ හැකිද (නැතහොත් එය නොපවතියි නම් එය ස්වයංක්‍රීයව එකක් නිර්මාණය කරයිද යන්න) පුස්තකාලය මත රඳා පවතී.
FileNotFoundErrorමෙම දෝෂය ඇති වුවහොත්, පහත උදාහරණයේ පරිදි, සුරැකීමට ශ්‍රිතය ක්‍රියාත්මක කිරීමට පෙර, ඔබට os.madeirs() සමඟ නව නාමාවලියක් සෑදිය හැක.

open() සමඟ නොපවතින නාමාවලියක් සඳහන් කිරීමේදී දෝෂයකි(FileNotFoundError)

බිල්ට්-ඉන් ශ්‍රිතය විවෘත () සමඟ නව ගොනුවක් සාදන විට, නව ඩිරෙක්ටරියක් (නොපවතින ඩිරෙක්ටරියක්) අඩංගු මාර්ගයක් ගමනාන්තය ලෙස පළමු තර්කය ලෙස සඳහන් කළහොත් දෝෂයක් ඇතිවේ.(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 හි පැරණි අනුවාදයක් තිබේ නම් සහ os.makedirs() හි exist_ok තර්කයක් නොමැති නම්, ඔබ පවතින බහලුමකට මාර්ගය සඳහන් කළහොත් ඔබට දෝෂයක් ලැබෙනු ඇත, එබැවින් පරීක්ෂා කිරීමට 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’ හොඳයි, නමුත් ඔබට ද්විමය ගොනුවක් සෑදීමට අවශ්‍ය නම්, mode=’wb’ සකසන්න.