نفحص ملفًا مؤقتًا في ويندوز. [1] [2] [3] [4]
الخلاصة السريعة
الواصف مدخل؛ الناتج مقبض نظام التشغيل المرتبط به. [1] [2] [3] [4]
- نأخذ fd من f.fileno(). [1] [2] [3] [4]
- يعطي get_osfhandle(fd) مقبضًا؛ فحص العدد الصحيح True. [1] [2] [3] [4]
- داخل السياق f.closed يساوي False؛ بعده True. [1] [2] [3] [4]
- المقبض ليس المحتوى؛ لا تنتقل ملكيته، ولا نفترض اختلاف الرقمين. [1] [2] [3] [4]
- الواصف غير المعروف يرفع OSError. [1] [2] [3] [4]
- ويندوز و3.12.14؛ إغلاق بالسياق، دون CloseHandle منفصل. لا تدفقات قياسية أو أنابيب. [1] [2] [3] [4]
المثال
import msvcrt,tempfile with tempfile.TemporaryFile() as f: fd=f.fileno() h=msvcrt.get_osfhandle(fd) print(isinstance(h,int)) print(f.closed) print(f.closed)
المخرجات True ثم False ثم True. [1] [2] [3] [4]
الارتباط والملكية
المقبض مرتبط بالواصف؛ لا يفترض المثال اختلاف قيمتيهما عدديًا. [1] [2] [3] [4]

أبقينا إغلاق الملف للسياق. لا تستدع CloseHandle للمقبض المستخرج؛ ملكيته للواصف. [1] [2] [3] [4]
الحدود
أنشأنا ملفًا حقيقيًا. لا نختبر تدفقات قياسية أو أنابيب، ولا صلاحية المحتوى. الواصف غير المعروف يرفع OSError. [1] [2] [3] [4]
المراجع
- Python: msvcrt
- CPython3.12.14: msvcrt wrapper
- Microsoft: _get_osfhandle
- Microsoft: GetFileType
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
