أوضاع فتح الملفات
| الوضع | الوصف | الملف موجود | الملف غير موجود |
|---|---|---|---|
| "r" | قراءة فقط | يقرأه | خطأ FileNotFoundError |
| "w" | كتابة (يمسح) | يمسح المحتوى | ينشئه |
| "a" | إضافة للنهاية | يضيف للنهاية | ينشئه |
| "r+" | قراءة وكتابة | يبقى كما هو | خطأ |
| "x" | إنشاء جديد | خطأ FileExistsError | ينشئه |
## قراءة الملفات في Python
Python توفر طرقاً بسيطة لقراءة الملفات النصية.
### فتح الملف: ```python file = open("filename.txt", "r", encoding="utf-8") ```
### طرق القراءة: - `read()`: قراءة الملف كاملاً كنص واحد - `readline()`: قراءة سطر واحد - `readlines()`: قراءة كل الأسطر كقائمة
### with statement (الأفضل): يغلق الملف تلقائياً بعد الانتهاء ```python with open("file.txt", "r", encoding="utf-8") as f: content = f.read() ```
### أوضاع الفتح: - `"r"`: قراءة فقط (افتراضي) - `"w"`: كتابة (يمسح المحتوى) - `"a"`: إضافة في النهاية - `"rb"`: قراءة ثنائية
| 1 | # قراءة ملف كاملاً |
| 2 | with open("data.txt", "r", encoding="utf-8") as f: |
| 3 | content = f.read() |
| 4 | print(content) |
| 5 | |
| 6 | # قراءة سطراً سطراً |
| 7 | with open("data.txt", "r", encoding="utf-8") as f: |
| 8 | for line in f: |
| 9 | print(line.strip()) |
| 10 | |
| 11 | # قراءة كل الأسطر كقائمة |
| 12 | with open("data.txt", "r", encoding="utf-8") as f: |
| 13 | lines = f.readlines() |
| 14 | print(f"عدد الأسطر: {len(lines)}") |
مثال 1: قراءة ملف نصي
| 1 | # افترض أن الملف يحتوي أسماء |
| 2 | try: |
| 3 | with open("names.txt", "r", encoding="utf-8") as f: |
| 4 | names = [line.strip() for line in f if line.strip()] |
| 5 | |
| 6 | print(f"تم قراءة {len(names)} اسم") |
| 7 | for i, name in enumerate(names, 1): |
| 8 | print(f"{i}. {name}") |
| 9 | |
| 10 | except FileNotFoundError: |
| 11 | print("الملف غير موجود!") |