• 0
mohamedz

الدرس الخامس عشر : الملفات (الجزء الأول)

سؤال

الدالة open

تستخدم الدالة ()open لفتح الملفات في النظام.

open(filename, [mode='r'])

- filename هو إسم الملف المراد فتحه.

- mode يعبر عن حالة الوصول (فتح الملف للقراءة، للكتابة، للإظافة ... إلخ) الإفتراضي هو 'r' للقراءة.

- r ==> قراءة فقط.

- w ==> كتابة فقط (يتم محو كل البيانات الموجودة في الملف و إعادة كتابتها أو ما يسمى ب rewriting، وإذا لم يوجد الملف سيتم إنشاءه أليا).

- a ==> إظافة محتويات عند نهاية الملف(وعدم محو البيانات السابقة للملف).

- +r ==> قراءة و كتابة.

- +w ==> كتابة و قراءة.

قراءه محتويات ملف نصي

السكربتات الصغيرة التالية تطبع محتويات ملف نصي.

السكربت الأول

#!/usr/bin/python
FileName = raw_input('Please input a text file name : ');
F = open(FileName, 'r')

for Line in F :
print Line,

F.close()

شرح السكربت :

FileName = raw_input('Please input a text file name : ')

بعد تنفيذ السكربت السابق نقوم بأدخال إسم ملف نصي موجود في نفس مكان السكربت، أو بكتابة المسار كاملا.

F = open(FileName, 'r')

فتح الملف للقراءة فقط.

ربط إسم الملف الفعلي FileName بالمتغير F، و الذي عن طريقه يمكننا التعامل مع الملف من داخل بايثون.

for Line in F :
print Line,

إستعملنا الحلقة التسلسلية for لطباعة محتويات الملف سطرا سطرا.

F.close()

في النهاية نقوم بغلق الملف.

السكربت الثاني : إستخدام الوظيفة ()readline.

#!/usr/bin/python
FileName = raw_input('Please input a text file name : ');
F = open(FileName, 'r')

while True :
Line = F.readline()
if not Line :
break
else :
print Line,

F.close()

شرح السكربت :

Line = F.readline()

قراءة سطر من الملف النصي المعبر عنه ب F، و تخزينه في المتغير Line.

if not Line :
break

إذا لم يكن هناك سطر (هذا يعني أن الملف إنتهى)، تتوقف الحلقة لوجود العبارة break.

else :
print Line,

أما إذا حدث العكس (يوجد سطر و لم ينتهي الملف)، يطبع هذا السطر على الشاشة.

تواصل الحلقة الدوران إلى أن تنتهي كل الأسطر فتتوقف، ويتم تنفيذ الأمر ()F.close لغلق الملف.

السكربت الثاني : إستخدام الوظيفة ()readlines.

#!/usr/bin/python
FileName = raw_input('Please input a text file name : ');
F = open(FileName, 'r')

contents = F.readlines()
for Line in contents :
print Line,
F.close()

شرح السكربت :

contents = F.readlines()

إرجاع قائمة بكل أسطر الملف، وتخزينها في المتغير contents.

إنشاء و كتابة ملف نصي

سكربت لإنشاء و كتابة ملف نصي

#!/usr/bin/python
FileName = raw_input('Please input a text file name : ');
F = open(FileName, 'w')

print 'Please input file contents line by line,'
print 'when you finish write % then press enter'

while True :
Line = raw_input('Enter a line : ')
if Line != '%' :
F.write('%s\n' % (Line))
else :
break

F.close()

شرح السكربت :

F = open(FileName, 'w')

فتح الملف للكتابة فقط.

if Line != '%' :
F.write('%s\n' % (Line))

إذا كان السطر الذي أدخله المستخدم لا يساوي '%'، سيتم كتابته في الملف مع الإنتقال الى سطر جديد لأننا إستخدمنا العبارة 'n\'.

else :
break

إذا أدخل المستخدم العبارة '%' تتوقف الحلقة و يغلق الملف.

الإظافة إلى ملف نصي

عندما نكتب في ملف نصي تحذف كل البيانات السابقة ويعاد كتابتها، فلو أردنا الإظافة الى الملف دون المساس بالمحتويات السابقة علينا فتح الملف بصيغة a- append-.

التعديل على السكربت السابق

لو أردنا التعديل على السكربت السابق ليعمل على إظافة البيانات الى الملف بدلا من إعادة كتابته، علينا فقط تغيير هذا السطر :

F = open(FileName, 'w')

بهذا السطر :

F = open(FileName, 'a')

ليصبح السكربت النهائي كالتالي :

#!/usr/bin/python
FileName = raw_input('Please input a text file name : ');
F = open(FileName, 'a')

print 'Please input file contents line by line,'
print 'when you finish write % then press enter'

while True :
Line = raw_input('Enter a line : ')
if Line != '%' :
F.write('%s\n' % (Line))
else :
break

F.close()

فهرس الدورة

الفصل الاول : أساسيات بايثون

دورة بايثون من الصفر الى الاحتراف

الدرس الاول : أمر الطباعة print + التعليقات

الدرس الثاني : المتغيرات Variables

الدرس الثالث : الإدخال Input

الدرس الرابع : الجملة الشرطية if

الدرس الخامس : المقاطع string

الدرس السادس : الكائنات متعددة العناصر (الجزء الأول)

الدرس السابع : الكائنات متعددة العناصر (الجزء الثاني)

الدرس الثامن : الحلقات loops (الجزء الأول)

الدرس التاسع : الحلقات loops (الجزء الثاني)

إزالة الغموض من الفصل الأول

الفصل الثاني : Functions & Procedures

الدرس العاشر : الدوال Function

الدرس الحادي عشر : دوال بايثون الجاهزة

ملخص الفصل الثاني

الفصل الثالث : البرمجة الكائنية المنحى oop

الدرس الثاني عشر : رابط لتعلم البرمجة الكائنية المنحى

الفصل الرابع : الأخطاء و الإستثناءات Errors, Exceptions

الدرس الثالث عشر : التعامل مع الأخطاء (الجزء الأول)

الدرس الرابع عشر : التعامل مع الأخطاء (الجزء الثاني)

الفصل الخامس :

الدرس الخامس عشر : الملفات (الجزء الأول)

الدرس السادس عشر : الملفات (الجزء الثاني)

تم تعديل بواسطه mohamedz
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

1 إجابات على هذا السؤال .

  • 0

يعطيك العافية اخي mohamedz

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .