makedirs لإنشاء أدلة هرمية عميقة بشكل متكرر في Python

اعمال

خطأ عند إنشاء دليل جديد باستخدام os.mkdir () في دليل غير موجود

os.mkdir()هذه هي الطريقة المستخدمة لإنشاء دليل (مجلد) في بايثون. إذا حاولت إنشاء دليل جديد في دليل غير موجود ، فسيحدث خطأ.(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

إذا كانت هناك حجة موجودة

منذ Python 3.2 ، تمت إضافة الوسيطة الموجودة ، وإذا كان موجودًا = صحيحًا ، فلن يحدث خطأ حتى إذا كان دليل النهاية موجودًا بالفعل. إذا لم يكن دليل النهاية موجودًا ، فسيتم إنشاء دليل جديد ، وإذا كان موجودًا ، فلن يتم فعل أي شيء. هذا مناسب لأنك لست بحاجة إلى التحقق من وجود الدليل الطرفي مقدمًا.

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

إذا كانت الوسيطة موجودة في عداد المفقودين

إذا كان لديك إصدار أقدم من Python ولم يكن لديك الوسيطة الموجودة في os.madeirs ، فيمكنك استخدام os.path.exists لتحديد ما إذا كان هناك دليل نهاية أم لا ، ثم إنشاء دليل جديد فقط في حالة عدم وجود دليل النهاية.

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