في Python 3.3+ ، يمكننا التعامل مع الملفات المفقودة بسهولة:
try:
open('unobtanium')
except FileNotFoundError:
...
في Python 2 ، هناك المزيد من الأغاني والرقص:
try:
open('unobtanium')
except IOError as err:
if err.errno != errno.ENOENT:
raise
هل تسمح لنا هذه المكتبة بكتابة معالجة الملفات بأسلوب Python 3 الأبسط في Python 2 ، بطريقة أو بأخرى؟ إذا لم يكن الأمر كذلك ، فهل هناك أي خطط للحصول على FileNotFoundError
في Python-Future ، أم أنه من الصعب جدًا تنفيذها؟
شكرا!
شكرا على الطلب ، ويم. هذا يبدو وكأنه ميزة جيدة.
هل أنت قادر على المساهمة في التصحيح الذي يحدد FileNotFoundError
في src/future/builtins/__init__.py
؟ سيؤدي ذلك إلى تسريع عملية الحصول على الدعم. :-)
لقد خصصت تصحيحًا لفرع تطوير جديد يسمى exceptions
. يمكنك استخدام استثناءات PEP3151 الجديدة برمز مثل هذا:
from builtins import FileNotFoundError
في الجزء العلوي من الوحدات النمطية التي تستدعي تلك الاستثناءات.
هل يمكنك من فضلك تجربة الفرع الجديد والإبلاغ عن مدى نجاح هذا الأمر بالنسبة لك؟
مرحبًا إد ، نعم ، لقد جربته ويبدو أنه يعمل بشكل جيد:
>>> import sys; sys.version
'2.7.12 (default, Jun 29 2016, 14:05:02) \n[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)]'
>>> from builtins import FileNotFoundError
>>> try:
... open('unobtanium')
... except FileNotFoundError as err:
... pass
...
>>> err
IOError(2, 'No such file or directory')
>>> issubclass(FileNotFoundError, OSError)
True
edschofield هل هذه
أعتقد أن هذا مدرج في 0.17
التعليق الأكثر فائدة
edschofield هل هذه