පයිතන් හි ප්‍රත්‍යාවර්තීව ගැඹුරු ධූරාවලි නාමාවලි නිර්මාණය කිරීමට makedirs

ව්යාපාරික

නොපවතින නාමාවලියක os.mkdir() සමඟ නව නාමාවලියක් නිර්මාණය කිරීමේදී දෝෂයකි

os.mkdir()පයිතන් හි නාමාවලියක් (ෆෝල්ඩරයක්) සෑදීමට භාවිතා කරන ක්‍රමය මෙයයි. ඔබ නොපවතින නාමාවලියක නව නාමාවලියක් සෑදීමට උත්සාහ කළහොත්, දෝෂයක් ඇතිවේ.(FileNotFoundError)

import os

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

os.madeirs() සමඟ ප්‍රත්‍යාවර්තව නාමාවලි සාදන්න

ඔබ os.mkdir() වෙනුවට os.makedirs() භාවිතා කරන්නේ නම්, එය අතරමැදි නාමාවලියක් සාදනු ඇත, එබැවින් ඔබට පුනරාවර්තන ලෙස ගැඹුරු ධූරාවලි නාමාවලියක් සෑදිය හැක.

os.makedirs('not_exist_dir/new_dir')

මෙම උදාහරණයේ දී, එය එකවර ඒවා සියල්ලම නිර්මාණය කරනු ඇත. නව අතරමැදි නාමාවලි කිහිපයක් තිබේ නම් එය කමක් නැත.

  • අතරමැදි නාමාවලිය:not_exist_dir
  • අවසාන නාමාවලිය:new_dir

කෙසේ වෙතත්, අවසන් නාමාවලිය දැනටමත් පවතී නම්, දෝෂයක් සිදුවනු ඇත.(FileExistsError)

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

තර්කයක් ඇත්නම්_ok

Python 3.2 සිට, exist_ok තර්කය එකතු කර ඇති අතර, exist_ok=True නම්, අවසන් නාමාවලිය දැනටමත් පැවතුනද දෝෂයක් සිදු නොවේ. අවසාන නාමාවලිය නොපවතියි නම්, නව එකක් සාදනු ඇත, එය පවතී නම්, කිසිවක් සිදු නොවේ. ටර්මිනල් ඩිරෙක්ටරියේ පැවැත්ම කල්තියා පරීක්ෂා කිරීමට අවශ්ය නොවන නිසා මෙය පහසු වේ.

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

තර්කය පවතී නම්_ok අතුරුදහන් වේ

ඔබට Python හි පැරණි අනුවාදයක් තිබේ නම් සහ os.madeirs හි exist_ok තර්කයක් නොමැති නම්, ඔබට අවසන් නාමාවලියක් තිබේද නැද්ද යන්න තීරණය කිරීමට os.path.exists භාවිතා කළ හැකි අතර, පසුව එය නොමැති නම් පමණක් නව එකක් සෑදිය හැක. අවසන් නාමාවලිය.

if not os.path.exists('exist_dir/exist_dir'):
    os.makedirs('exist_dir/exist_dir')