• 0

هل هنالك طريقة لفتح أكثر من ملف عن طريق استخدام "with open” في بايثون؟

أريد أن أقوم بتغيير مجموعة من ملفات في نفس الوقت، حاولت أن أربط مجموعة من تعليمات فتح الملفات مع استخدام تعليمة with لكنني لم أنجح:

try:
  with open('a', 'w') as a and open('b', 'w') as b:
    do_something()
except IOError as e:
  print 'Operation failed: %s' % e.strerror

فما هي الطريقة الصحيحة لفعل ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

الحل لهذه المشكلة بسيط للغاية، فإذا كنت تستخدم الإصدار 2.7 من بايثون أو 3.1 فيمكنك استبدال تعليمة and بفاصلة (فارزة) كما في المثال التالي:

with open('a', 'w') as a, open('b', 'w') as b:
    do_something()

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن