FileType يفتح الملف هنا؛ ليس الناتج نص المسار. [1] [2]
الخلاصة السريعة
ملف مفتوح هنا؛ نغلقه صراحة. [1] [2]
- FileType يفتح الملف هنا؛ ليس الناتج نص المسار. [1] [2]
- على CPython 3.12.14، ملف UTF-8 مؤلف يحوي bud؛ --src بتخزين عادي وFileType("r",encoding="utf-8"). [1] [2]
- نمرر مساره؛ يعاد ملف مفتوح، نقرأ bud ونغلقه صراحة في finally. [1] [2]
- تحكم مستقل دون type، بالمسار نفسه: النتيجة نص يساوي المسار. [1] [2]
- تنبه وثائق 3.12: فشل وسيط لاحق لا يغلق ملف FileType تلقائيًا؛ تقترح إدارة الملفات بعد التحليل باستخدام with. مثالنا نجاح محدد. [1]
الفتح
الضبط
على CPython 3.12.14، ملف UTF-8 مؤلف يحوي bud؛ --src بتخزين عادي وFileType("r",encoding="utf-8"). [1] [2]
قراءة وإغلاق
نمرر مساره؛ يعاد ملف مفتوح، نقرأ bud ونغلقه صراحة في finally. [1] [2]
import argparse from pathlib import Path from tempfile import TemporaryDirectory td=TemporaryDirectory() path=Path(td.name)/"sample.txt" path.write_text("bud",encoding="utf-8") own=argparse.ArgumentParser() own.add_argument("--src",type=argparse.FileType("r",encoding="utf-8")) ns=own.parse_args(["--src",str(path)]) try: print(ns.src.closed,ns.src.read()) finally: ns.src.close() print(ns.src.closed) [1] [2]

النص والإدارة
تحكم مستقل دون type، بالمسار نفسه: النتيجة نص يساوي المسار. [1] [2]
control=argparse.ArgumentParser() control.add_argument("--src") try: cns=control.parse_args(["--src",str(path)]) print(type(cns.src) is str,cns.src==str(path)) finally: td.cleanup() [1] [2]
تنبه وثائق 3.12: فشل وسيط لاحق لا يغلق ملف FileType تلقائيًا؛ تقترح إدارة الملفات بعد التحليل باستخدام with. مثالنا نجاح محدد. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
