کار با فایل در پایتون

فایل ها در چرخه یک برنامه زیاد دیده میشوند و یک برنامه نویس خوب همیشه باید توانایی کار با فایل های مختلف را داشته باشد. در این مقاله قصد داریم نحوه کار با فایل در پایتون (Python File Handling) را بررسی کرده و آموزش دهیم.

کار با فایل در پایتون

 

در این مقاله ما با پایتون نسخه ۳٫۵ کار خواهیم کرد؛ در نسخه ۲٫۷ پایتون نیز روند کار به صورت مشابه هست و تفاوت چندانی ندارد.

برای کار با فایل در پایتون نیاز به استفاده و Import کردن هیچ ماژول اضافی و مازادی نداریم.

برای کار با فایل باید از شی File در پایتون استفاده کنیم. این شی (Object) اطلاعاتی از فایل و توابعی ساده ای در اختیارمان میگذارد تا بتوانیم با فایل ها به راحتی کار کنیم.

اولین کار برای انجام عملیات های مختلف روی یک فایل، این است که یک شی از File مورد نظر خود داشته باشیم. برای این کار به طور مستقیم از تابع open() استفاده میکنیم.

این تابع دو آرگومان ورودی میگیرد؛ اولی مسیر و نام فایل است و دومین آرگومان مشخص کننده حالت باز شونده فایل است.

 

حالت (mode) های مختلف باز کردن یک فایل

همانطور که میدانید حالت های مختلفی در هنگام باز کردن یک فایل وجود دارد که در زیر انواع آن را بررسی میکنیم.

r : خواندن (شروع از ابتدای فایل)

r+ : خواندن و نوشتن (شروع از ابتدای فایل)

w : ایجاد فایل برای نوشتن (شروع از ابتدا)

w+ : ایجاد فایل برای نوشتن و خواندن (شروع از ابتدا)

a : خواندن (شروع از انتها)

a+ : خواندن و نوشتن (شروع از انتها)

در دو مورد حالت w در صورتی که فایلی از قبل وجود داشته باشد، فایل را پاک کرده و یک فایل جدید ایجاد میکند.

در دو حالت a در صورتی که فایلی وجود داشته باشد، آنرا باز کرده و از انتهای آن شروع به انجام عملیات میکند و اگر فایلی وجود داشته باشد، یک فایل خالی ایجاد میکند.

حالت های مختلف دیگری نیز برای کار با فایل وجود دارند که پر کاربردترین آنها، موارد فوق هستند.

 

توجه داشته باشید که در هنگام صدا زدن تابع open() در صورتی که آرگومان دوم مشخص نشده و صرفاً نام و مسیر فایل به عنوان ورودی داده شده باشد، فایل به طور پیشفرض در حالت r و برای خواندن ایجاد خواهد شد.

مقدار برگردانده شده توسط تابع open() را در یک متغیر ذخیره میکنیم تا بعداً بتوانیم توابع مورد نیاز خود را روی آن صدا زده و اعمال مختلفی روی فایل خود انجام دهیم.

 

برای درک بهتر، در ادامه این آموزش از یک فایل کمکی که محتویات آن به صورت زیر است استفاده خواهیم کرد.

 

در کدهای مثال زده شده، موارد کامنت شده (با استفاده از # در ابتدای خط) به معنای خروجی حاصل از اجرای کد می باشد.

 

خواندن فایل در پایتون

برای خواندن یک فایل در پایتون میتوان از روش ها و توابع مختلفی استفاده کرد.

read()

این تابع که می بایست روی متغیر شی فایل صدا زده شود، یک رشته متنی بزرگ به ما برمیگرداند که حاوی تمام محتویات فایل ماست.

 

توجه داشته باشید که اگر دو بار این تابع را پشت سر هم صدا بزنیم، در دفعه دوم، هیچ مقداری برای ما چاپ نمیشود! به دلیل اینکه تمام فایل تا انتها بررسی و خوانده شده و دیگر محتوای بیشتری برای نمایش نداریم.

تابع read() یک آرگومان ورودی به صورت دلخواه میتواند داشته باشد؛ این آرگومان از نوع عددی بوده و مشخص میکند که چه تعداد کاراکتر خوانده شود.

 

readline()

این تابع در هر بار صدا زده شدن روی فایل، یک خط از فایل را به ما بر میگرداند.

 

توجه کنید که در انتهای هر خط فایل، کاراکتر سطر جدید (\n) وجود دارد و تابع print که ما در مثال استفاده میکنیم نیز پس از هر بار چاپ کردن، به سطر جدید میرود؛ به همین دلیل است که در نتیجه کد فوق، برای هر خط، دو بار به سطر جدید میرویم.

 

readlines()

هنگامی که این تابع را روی فایل استفاده میکنیم، به عنوان خروجی تابع، یک لیست داریم که شامل خطوط موجود در فایل هست. یعنی هر عضو این لیست معادل یک خط در درون فایل خواهد بود.

 

استفاده از حلقه برای خواندن محتویات فایل

یک روش ساده برای خواندن خط به خط یک فایل در پایتون، استفاده از for یا به عبارت بهتر for each می باشد.

در صورتی که متغیر فایل را در یک حلقه استفاده کنیم، مشابه آن است که تابع readlines() را روی آن صدا زده و لیست نتیجه را به حلقه for داده ایم.

 

بستن فایل پس از کار با فایل

همیشه دقت کنید که پس از اینکه کارتان با فایل باز شده تمام شد، با صدا زدن تابع close() روی شی فایل، آن را ببندید. هر چند که پس از اتمام اسکریپت، فایل به صورت خودکار بسته میشود، اما این کار به آزاد شدن زودتر منابع کمک میکند.

همچنین اگر در هنگام نوشتن یک فایل باشید و نتوانید در انتهای کار آن را به درستی ببندید، چیزی در فایل ذخیره نخواهد شد!

 

 

نوشتن فایل در پایتون

برای نوشتن فایل در زبان python دو تابع اصلی وجود دارد.

Write()

این تابع یک رشته را به عنوان ورودی گرفته و درون فایل می نویسد.

 

با اجرای قطعه کد بالا، درون فایل text2.txt که در کنار برنامه وجود داشته یا ایجاد شده است، صرفاً عبارت معروف hello world! نوشته میشود.

 

writelines()

این تابع یک لیست از رشته های متنی گرفته و آن ها را به ترتیب درون فایل مورد نظر می نویسد.

 

اضافه کردن محتوا با محتوای موجود فایل در پایتون

همانطور که در هنگام معرفی حالت باز کردن یک فایل گفته شد، اگر فایلی که از قبل وجود داشته را در حالت w باز کنیم، تمام محتویات قبلی حذف شده و فایل آماده نوشته شدن محتوای جدید میشود.

در صورتی که بخواهیم به محتوای فعلی یک فایل، محتوای جدید اضافه کنیم، می بایست فایل را در حالت a (ابتدای append) باز کرده و سپس عملیات نوشتن روی آن را انجام دهیم.

 

حذف فایل در پایتون

برای حذف کردن یک فایل در زبان پایتون، می بایست ماژول os را به برنامه خود اضافه کنیم.

برای این کار کد زیر را در ابتدای برنامه خود می نویسیم.

 

این ماژول یک تابع به نام remove() داشته که با صدا زدن آن بر روی ماژول و دادن نام فایل به عنوان ورودی، فایل مورد نظر حذف شود. (اگر فایل در کنار برنامه نباشد می توان مسیر فایل را به عنوان ورودی داد.)

 

برای جلوگیری از به وجود آمدن خطا در هنگام حذف یک فایل، بهتر است ابتدا بررسی کنیم که آیا فایل در مسیر  مورد نظر وجود دارد یا خیر و سپس اقدام به حذف آن کنیم.

برای این کار میتوانیم از توابع دیگری که در ماژول os وجود دارد استفاده کرده و مانند قطع کد زیر عملیات حذف را انجام دهیم.

 



[ برچسب ها ] : , , , , , ,
ارسال شده در : بخش کامپیوتر
نظر شما در مورد اين پست چيست ؟

دیدگاه خود را به ما بگویید.

 
 
  دکتری تخصصی برق الکترونیک
طراح مدارهای الکترونیکی
برنامه نویس انواع میکروها
مشاوره و اجرای لینک های وایرلس
پیاده سازی سیستم های مبتنی بر شبکه
E_mail: electronic@sabzelco.ir
Tel: 09150462401
توسعه دهنده برنامه های سمت سرور

طراحی و برنامه نویسی سایت و پرتال های حرفه ای

E_mail: computer@sabzelco.ir
Tel: 09371974233