كيفية استخدام "with" في python لفتح الملفات (بما في ذلك الأمثلة)
يمكنك استخدام الصيغة التالية لفتح ملف في بايثون، والقيام بشيء به، ثم إغلاق الملف:
file = open (' my_data.csv ') df = file. read () print (df) file. close ()
المشكلة في هذا الأسلوب هي أنه من السهل جدًا نسيان إغلاق الملف.
الطريقة الأفضل هي استخدام open ، والذي يستخدم بناء الجملة الأساسي التالي:
with open (' my_data.csv ') as file: df = file. read () print (df)
باستخدام هذا الأسلوب، يتم إغلاق الملف الذي تعمل عليه تلقائيًا، لذا لن تضطر إلى تذكر استخدام file.إغلاق() .
توضح الأمثلة التالية كيفية الاستخدام مع الفتح في سيناريوهات مختلفة.
مثال 1: استخدم العبارة With لقراءة الملف
يوضح التعليمة البرمجية التالية كيفية استخدام عبارة “with” لقراءة ملف في Python وطباعة محتويات الملف:
with open (' my_data.csv ') as file: df = file. read () print (df) ,points, assists, rebounds 0.11.5.6 1,17,7,8 2,16,7,8 3,18,9,10 4,22,12,14 5,25,9,12 6,26,9,12 7,24,4,10 8,29,8,11
تتم طباعة محتويات الملف ويتم إغلاق الملف تلقائيًا دون أن نكتب file. Close() .
مثال 2: استخدم العبارة With لكتابة ملف
يوضح التعليمة البرمجية التالية كيفية استخدام العبارة “with” لكتابة نص إلى ملف:
with open (' data_out.csv ', ' w ') as file: file. write (' Some text to write to CSV file ')
لاحظ أن ‘ w ‘ في عبارة open() تطلب من Python استخدام وضع “الكتابة” مع الملف بدلاً من وضع القراءة.
مثال 3: استخدم العبارة With لقراءة الملفات وكتابتها
يمكننا أيضًا فتح ملفات متعددة مرة واحدة في عبارة “with” واحدة.
يوضح التعليمة البرمجية التالية كيفية استخدام عبارة “with” لفتح ملفين، وقراءة محتويات ملف واحد، ثم كتابة محتويات الملف الأول إلى الملف الثاني:
with open (' my_data.csv ', ' r ') as infile, open (' data_out.csv ', ' w ') as outfile: for line in infile: outfile. write (line)
إذا انتقلنا إلى الموقع الذي كتبنا فيه “data_out.csv”، فيمكننا بعد ذلك عرض محتويات الملف:
لاحظ أنه يمكننا استخدام الدالة open() لفتح أي عدد نريده من الملفات في عبارة “with” واحدة.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في بايثون:
كيفية قراءة ملفات CSV مع Pandas
كيفية قراءة ملفات Excel مع Pandas
كيفية قراءة الملفات النصية مع الباندا