ملفات
الملف هو مجموعة من البيانات في الذاكرة الخارجية لها اسم. & nbsp؛
هناك نوعان من الملفات في بايثون:
- نص ، الذي يحتوي على نص مقطوع على سطر ؛ من بين الأحرف الخاصة في الملفات النصية ، يمكن أن يكون هناك أحرف سطر جديد فقط (& quot؛ \ n & quot؛) والعودة إلى بداية السطر (& quot؛ \ r & quot ؛) ؛
- ثنائي ، الذي يخزن أي بيانات ثنائية دون قيود (على سبيل المثال ، الصور والأصوات ومقاطع الفيديو وما إلى ذلك).

بعد ذلك ، سننظر في العمل مع الملفات النصية.

& nbsp؛

مبدأ العمل مع ملف من البرنامج تتكون من ثلاث مراحل:
1. فتح ملف
2. العمل مع الملف ؛
3. إغلاق الملف.
يسمى مبدأ العملية هذا "مبدأ الشطيرة". .

عند فتح ملف ، يشار إلى وضع التشغيل: قراءة أو كتابة أو إلحاق البيانات بنهاية الملف. الملف المفتوح محظور ولا يمكن للبرامج الأخرى الوصول إليه. & nbsp ؛ بعد العمل مع الملف ، يجب عليك إغلاقه لقطع الاتصال بالبرنامج. عند إغلاق ملف ، تتم كتابة جميع التغييرات التي أجراها البرنامج في هذا الملف على القرص. & nbsp ؛ تعمل لغة Python مع الملفات من خلال متغيرات الملفات.

تتيح الوظيفة open () فتح ملف وإرجاع متغير ملف يمكن استخدامه للوصول إلى الملف.
f = open (file_name، access_mode) ، & nbsp؛
حيث:
- file_name & nbsp؛ - اسم الملف المراد فتحه
- access_mode - وضع فتح الملف. يمكن أن يكون: قراءة ، كتابة ، إلخ. الوضع الافتراضي للقراءة (r) ما لم يتم تحديد خلاف ذلك. & nbsp؛
نبسب ؛
القائمة الكاملة لأوضاع فتح الملف <الجسم>
الوضع الوصف
r للقراءة فقط.
w قابل للكتابة فقط. سيتم إنشاء ملف جديد إذا لم يتم العثور عليه بالاسم المحدد.
rb للقراءة فقط (ثنائي).
wb كتابة فقط (ثنائي). سيتم إنشاء ملف جديد إذا لم يتم العثور عليه بالاسم المحدد.
r + للقراءة والكتابة.
rb + للقراءة والكتابة (ثنائي).
w + للقراءة والكتابة. سيتم إنشاء ملف جديد قابل للكتابة إذا لم يتم العثور عليه بالاسم المحدد.
wb + للقراءة والكتابة (ثنائي). سيتم إنشاء ملف جديد قابل للكتابة إذا لم يتم العثور عليه بالاسم المحدد.
أ يفتح لإضافة محتوى جديد. سيتم إنشاء ملف جديد قابل للكتابة إذا لم يتم العثور عليه بالاسم المحدد.
a + يفتح لإضافة محتوى جديد. سيتم إنشاء ملف جديد لقراءة الإدخال إذا لم يتم العثور عليه بالاسم المحدد.
أب يفتح لإضافة محتوى جديد (ثنائي). سيتم إنشاء ملف جديد قابل للكتابة إذا لم يتم العثور عليه بالاسم المحدد.
ab + يفتح لإضافة محتوى جديد (ثنائي). سيتم إنشاء ملف جديد لقراءة الإدخال إذا لم يتم العثور عليه بالاسم المحدد.

نبسب ؛
تتيح لك طريقة إغلاق () إغلاق ملف .

مثال Fin = فتح (& quot ؛ input.txt & quot ؛) Fout = فتح (& quot؛ output.txt & quot؛) نبسب ؛ على & nbsp ؛ # افعل شيئًا مع الملفات fout.close () Fin.close () إذا تم فتح ملف موجود للكتابة ، يتم إتلاف محتوياته. بعد انتهاء البرنامج ، يتم إغلاق جميع الملفات المفتوحة تلقائيًا.
نبسب ؛

قراءة البيانات من ملف عند قراءة ملف نصي ، يدخل دفق البايت إدخال البرنامج واحدًا تلو الآخر ، وبالتالي يوفر الملف وصولاً تسلسليًا إلى البيانات. أي ، إذا أردنا قراءة القيمة العاشرة من الملف ، يجب أن نقرأ أولاً 9.

تسمح قراءة سطر واحد من الملف بتنفيذ طريقة readline () . تسمى هذه الطريقة على متغير ملف. Fin = فتح (& quot ؛ input.txt & quot ؛) s = Fin.readline ()
يمكن تطبيق طرق مختلفة على سلسلة القراءة ، مثل تلك المستخدمة عند القراءة من لوحة المفاتيح ( split () ، map () ، إلخ.). على سبيل المثال ، إذا كان هناك رقمان مفصولان بمسافة في سطر من الملف ، فيمكنك حسابهما على النحو التالي: Fin = فتح (& quot ؛ input.txt & quot ؛) s = Fin.readline (). split () # Split line على المسافات s = ["2007"، "2021"] أ ، ب = خريطة (كثافة العمليات ، ق) نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ # تطبيق طريقة int () على جميع عناصر القائمة ، نبسب ؛ # أي تحويل سلسلة الأحرف إلى رقم # a، b = int (s [0]، s [1]) & nbsp؛ # هذا هو نفس السطر أعلاه # a، b = [int (x) for x in s] # نفس المولد
تقرأ الطريقة read () محتويات الملف بالكامل وتُرجع سلسلة قد تحتوي على الأحرف & # 39 ؛ \ n & # 39 ؛. إذا تم تمرير معلمة عدد صحيح إلى طريقة read () ، فلن تتم قراءة أكثر من عدد الأحرف المحدد. على سبيل المثال ، يمكنك قراءة ملف بايت بايت باستخدام طريقة read (1) .
.
عند فتح ملف ، يتم تعيين المؤشر الذي يحدد الموقع الحالي في الملف إلى بداية الملف ، وعند قراءته ، يتم نقله إلى الموضع الذي يلي قراءة البيانات. عند الكتابة ، يتحرك المؤشر إلى الموضع الحر التالي.

كتابة البيانات في الملف تُستخدم طريقة write () لكتابة البيانات إلى ملف. يجب تحويل البيانات الرقمية إلى سلسلة. يمكن القيام بذلك إما باستخدام طريقة format () أو باستخدام طريقة str () .

نبسب ؛

ملفات متعددة الأسطر عند العمل مع ملفات متعددة الخطوط ، يجب أن تعرف متى تنفد البيانات الموجودة في الملف. للقيام بذلك ، يمكنك استخدام ميزة طرق readline () : إذا كان مؤشر الملف يشير إلى نهاية الملف ، فإن طريقة readline () ترجع سلسلة فارغة ، والتي يُنظر إليها على أنها قيمة منطقية خاطئة: احيانا صحيح: نبسب ؛ نبسب ؛ s = Fin.readline () نبسب ؛ نبسب ؛ إن لم يكن ق: كسر نبسب ؛ # إذا تم استلام سلسلة فارغة عند قراءة سلسلة ، نبسب ؛ # الحلقة تنتهي ببيان كسر نبسب ؛ نبسب ؛ print (s، end = & quot؛ & quot؛) & nbsp؛ # تعطيل سطر جديد ، لأنه عند قراءة سطر من ملف & nbsp؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ على & nbsp ؛ # حرف سطر جديد "\ n" محفوظة

& nbsp؛

طرق أخرى لقراءة البيانات من الملفات متعددة الأسطر 1. على الفور جميع البيانات الموجودة في القائمة. Fin = فتح (& quot ؛ input.txt & quot ؛) list_strings = Fin. readlines () & nbsp؛ على & nbsp ؛ # قراءة جميع الأسطر مرة واحدة Fin.close () لـ s في list_strings: نبسب ؛ نبسب ؛ print (s، end = & quot؛ & quot؛)
2. استخدام البناء with-as . في هذه الحالة ، يتم إغلاق الملف تلقائيًا بعد انتهاء الدورة. مع open (& quot؛ input.txt & quot؛) كـ Fin: نبسب ؛ نبسب ؛ لـ s في Fin: نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ print (s، end = & quot؛ & quot؛) يضمن هذا البناء إغلاق الملف. & nbsp؛


3. طريقة للتكرار على السلاسل بأسلوب لغة بايثون (يوصى باستخدام هذه الطريقة). في هذه الحالة ، يتم أيضًا إغلاق الملف تلقائيًا. لـ s مفتوحة (& quot؛ input.txt & quot؛): نبسب ؛ نبسب ؛ طباعة (ق ، نهاية = & quot ؛ & quot ؛)

ملف السيريلية
إذا كان الملف يحتوي على أحرف روسية (أي حرف برمز أكبر من 127) ، فيجب عليك تحديد الترميز عند الفتح data = open (& quot؛ input.txt & quot ؛، & quot؛ r & quot ؛، encoding = & quot؛ utf-8 & quot؛)