دعنا نتحدث عن ملف i o.
ماذا يعني س؟
سترى هذا كثيرًا في البرمجة.
IO تعني مدخلات الإخراج.
ترى ، في معظم الأوقات ، لا تتواصل الآلات في بيئة واحدة فقط.
على سبيل المثال ، حتى الآن كنا نكتب الكود الخاص بنا ، دعنا نقول ، محرر مثل نص Sublime الموجود
لدي هنا ، أو Pi Charm أو تموج عبر الإنترنت.
لكنك تريد عادةً التفاعل مع أجزاء مختلفة من النظام.
ربما تريد التحدث إلى موقع ويب آخر ، ربما تريد التحدث إلى شيء موجود على سطح المكتب ، ربما
ملف ، ربما جهازان مختلفان يتواصلان مع بعضهما البعض.
ربما تتحدث إلى قاعدة بيانات.
IO تعني ببساطة ، مرحبًا ، أريدك أن تدخل شيئًا من العالم الخارجي وتخرج شيئًا ما إلى العالم الخارجي.
ومن أكثر الطرق شيوعًا التي نستخدم بها أشياء مثل IO هي قراءة الملفات.
قد تفكر في Python وكيف لن يكون الأمر رائعًا إذا كان بإمكاننا ربما كتابة نص
يضغط الصور بينما نحتاج إلى IO ، ثم أحتاج إلى إدخال صورة ثم أحتاج إلى إخراج الملف المضغوط.
صورة.
ربما أرغب في العمل مع ملف PDF وربما إضافة علامة مائية إلى جميع صفحات pdf الخاصة بي.
حسنًا ، نقوم بإدخال ملف PDF وإخراج نسخة جديدة من ملف PDF.
لذا فهذه مهمة شائعة جدًا نراها كثيرًا.
وتعد قراءة الملفات وكتابتها أداة مهمة جدًا في حزام الأدوات الخاص بنا.
وبالمناسبة ، لدينا مشروع قادم حيث سنستخدم هذا بالفعل مع ملفات PDF.
لكن في الوقت الحالي ، كيف يمكننا عمل إخراج هذا الملف باستخدام Python؟
حسنًا ، لدى Python وظيفة مضمنة تسمح لنا بفتح وكتابة ملفين.
ويسمى ببساطة أنه مفتوح ولطيف وسهل.
لذا باستخدام open ، يمكننا فعل شيء كهذا.
يمكنني إنشاء نموذج لملف نصي على سطح المكتب الخاص بنا ، لذلك سأستخدم طرفي هنا.
لذلك إذا نظرنا إلى دليل العمل الحالي.
أنا على سطح المكتب.
إذا كنت تستخدم نظام Windows ، فقد تضطر إلى القيام ببعض الأوامر المختلفة هنا.
ولكن الآن يجب أن تكون على دراية بأنه يمكنك إنشاء ملف إذا كنت تريد ذلك.
الآن يمكنني القيام بذلك يدويًا أو في الجهاز الطرفي الخاص بي.
يمكنني فعلاً فعل ذلك.
إذا كنت تستخدم جهاز Mac ، فيمكنك فقط اللمس ثم سأقول اختبار نقطة النص.
لذلك إذا قمت بذلك ، فسترى أن لدي ملف نصي تجريبي وملف نصي dot py.
ومرة أخرى ، فقط لمضاعفة التحقق مما إذا كنت أذهب إلى سطح المكتب.
نعم.
لدي هذين هنا.
في احسن الاحوال.
الآن هنا ، يمكننا أن نقول ببساطة في ملف البرنامج النصي الخاص بنا.
فتح.
واسم الملف.
في حالتنا ، إنه اختبار.
تأكد من أنه اختبار سلسلة ، نص نقطة.
مثل هذا تماما.
الآن يمكنني تعيين هذا إلى متغير ، وأطلق عليه اسم ملفي.
والآن لدينا كائن الملف.
لذلك دعونا نتحقق من هذا.
إذا فعلت ذلك هنا ، اطبع ملفي.
دعونا نرى ما سيحدث.
سأقوم بتشغيل الكود الخاص بي.
لنفترض أن python ثلاثة ثم قم بتشغيل البرنامج النصي dot py.
حسنا.
أحصل على كائن ، غلاف نسيج ، أحصل على الاسم ، وهو نص ، أحصل على الوضع ، والذي لست متأكدًا منه
بعد.
سنتعلم ثم الترميز ، وهو كيفية ترميز هذا الملف ، وهو UTF ثمانية.
عادةً ما يتم ترميز معظم الملفات بتنسيق UTF ثمانية.
حسنًا ، كيف يمكنني قراءة هذا الملف بالفعل؟
كل ما علينا القيام به هو أن ملفي يحتوي على نقطة.
طريقة ريد عليها حتى لو قمت بتشغيل هذا الآن.
حسنًا ، أحصل على مساحة فارغة لأنه لا يوجد شيء في ملف نص الاختبار هذا.
لذلك دعونا نكتب شيئًا ما.
سأفتح هذا الملف والنص الرائع وأكتب فقط.
مرحبًا ، اسمي أندريه.
الآن ، لقد أصبحت مبدعًا حقًا مع هذا.
أحسنت.
حسنًا ، دعنا نعود.
حتى الآن إذا قرأت هذا الملف.
انظر إلى ذلك.
أنا قادر على القراءة.
مرحبًا ، اسمي أندريه.
والآن هناك تذهب.
لقد قرأت ملفي.
جميل وسهل.
الآن ، إذا قمت بتشغيل هذا مرة أخرى ، دعنا فقط.
اقرأ هذا عدة مرات.
إذا قمت بالنقر فوق تشغيل.
همم.
أنا قادر على القراءة في المرة الأولى ، لكن في هاتين المرتين لا أقرأ أي شيء.
لماذا هذا؟
حسنًا ، هذه الوظيفة المفتوحة لديها فكرة المؤشر.
أي يمكنك قراءة الملف مرة واحدة فقط.
وبمجرد فتحه ، فإنه يعيد كائن ملف.
ومحتويات الملف يمكنك قراءتها.
ومحتويات الملف حمراء بمؤشر تمامًا كما ترونه هنا واحدًا تلو الآخر ويتم طباعته على
الشاشة.
ولكن في نهاية هذه القراءة الأولى ، سيكون المؤشر في نهاية الملف.
الآن عندما يحاول القراءة ، سيكون نهاية الملف ولن يترك أي شيء هناك.
لذا فإن الطريقة التي نلتف بها هي أن نفعل شيئًا كهذا.
نقول ببساطة ملفي dot C ، والذي يحرك المؤشر إلى أي فهرس نريده.
في حالتنا ، ابحث عن الصفر.
لذا إذا قمت بتشغيل هذا الآن ، ها أنت ذا.
وإذا حركت المؤشر للخلف.
وأنا أحفظ هذا وتشغيله.
حسنا.
هذا أفضل بكثير الآن.
وهذا فقط لتوضيح أن بايثون تستخدم فكرة المؤشر لقراءة ملف.
الآن شيء فريد آخر يمكنني فعله هو قراءة السطر.
لذلك إذا قمت بتشغيل هذا.
إنه يقرأ السطر ، لكن دعنا نقول أن ملفنا النصي يحتوي على أسطر مختلفة.
إذن كيف حالك؟
دعنا نقول وجه مبتسم هنا.
إذا قرأت السطر الآن.
ثانية.
أهلاً.
اسمي اندريه.
إذا قرأت السطر مرة أخرى.
أهلاً.
اسمي أندريه لأنني حصلت على كل سطر.
أحصل على السطر الأول فقط إذا قمت بطباعة هذا عدة مرات.
وأنا أجري هذا.
حسنًا ، هذا أفضل.
انا حصلت.
مرحبًا ، اسمي أندريه سمايلي فيس.
كيف حالك؟
مرة أخرى ، يستمر المؤشر في الحركة.
حسنًا ، لذلك يمكنني مواصلة قراءة السطور.
شيء آخر يمكنني فعله هو أن أقول قراءة الأسطر فقط إذا قمت بتشغيل هذا.
أحصل على قائمة تحتوي على الملف بأكمله ، تقرأ جميع الأسطر ، وترى ما لدي هنا.
مرحباً ، اسمي أندريه ناجي.
لدي سطر جديد هنا.
وجه مبتسم ، خط جديد.
تذكر ، هذا هو الهروب التسلسل.
ثم كيف حالك ولا خط جديد هنا؟
لأنه لا يوجد خط جديد.
إنها نهاية الملف.
لذا فهذه مفيدة للغاية.
ربما يمكننا استخدام التعبيرات النمطية للبحث عن جزء من النص في ملف.
هذا مفيد جدًا ، أليس كذلك؟
الآن آخر شيء يتعين علينا القيام به وهذا أمر مزعج بعض الشيء ، لذا سأوضح لكم كيف أننا لسنا بحاجة إلى القيام
بذلك في المستقبل.
ولكن عليك بالفعل إغلاق الملف يدويًا بعد فتحه.
لذا يمكنك استخدامه في مكان آخر في البرنامج.
إنه مجرد معيار جيد.
لذا ما عليك فعله هو أن تقول ملفي مغلقًا بعد الانتهاء منه.
أنت تخبر جهاز الكمبيوتر الخاص بك.
يا.
أنت بحاجة إلى التوقف عن كل ما تفعله.
لم أعد مهتمًا بالملف.
لقد انتهينا من ذلك.
يمكنك استخدامه في مكان آخر.
لذلك عادة ما نفعل شيئًا كهذا وننتهي جميعًا.
لنأخذ استراحة ونتعلم المزيد في الفيديو التالي.