إنشاء وحفظ الملفات في دليل جديد في بايثون

اعمال

توضح الأقسام التالية كيفية إنشاء ملف جديد وحفظه في Python باستخدام دليل (مجلد) جديد كوجهة.

  • خطأ عند تحديد دليل غير موجود بفتح ()(FileNotFoundError)
  • os.makedirs()قم بإنشاء دليل
  • مثال على رمز لإنشاء ملف جديد مع وجهة

التالي مثال على ملف نصي.

عند تخزين الصور ، يعتمد الأمر على المكتبة فيما إذا كان يمكنك تحديد مسار يتضمن دليلًا غير موجود (أو ما إذا كان سيتم إنشاء دليل تلقائيًا إذا لم يكن موجودًا).
FileNotFoundErrorفي حالة حدوث هذا الخطأ ، يمكنك إنشاء دليل جديد باستخدام os.madeirs () قبل تنفيذ وظيفة الحفظ ، كما في المثال التالي.

خطأ عند تحديد دليل غير موجود بفتح ()(FileNotFoundError)

عند إنشاء ملف جديد باستخدام الوظيفة المضمنة مفتوحة () ، يحدث خطأ إذا تم تحديد مسار يحتوي على دليل جديد (دليل غير موجود) باعتباره الوسيطة الأولى كوجهة.(FileNotFoundError)

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

يمكن أن تكون الوسيطة الأولى لـ open () مسارًا مطلقًا أو مسارًا متعلقًا بالدليل الحالي.

للاستخدام الأساسي لـ open () ، مثل إنشاء ملف جديد في دليل موجود ، أو الكتابة فوق ملف موجود أو إلحاقه ، راجع المقالة التالية.

قم بإنشاء دليل(os.makedirs())

عند إنشاء ملف جديد في دليل غير موجود ، من الضروري إنشاء الدليل قبل الفتح ().

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

import os

os.makedirs(new_dir_path, exist_ok=True)

إذا كان لديك إصدار أقدم من Python ولم يكن لديك الوسيطة الموجودة في 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 ().

أيضًا ، يتم تحديد وضع open () كوسيطة. بالنسبة للملفات النصية ، يكون ‘w’ الافتراضي جيدًا ، ولكن إذا كنت تريد إنشاء ملف ثنائي ، فاضبط الوضع = ‘wb’.