
روز ۱۷: کار با فایلها در پایتون خواندن و نوشتن
یکی از مهمترین مهارتهایی که هر برنامهنویس پایتون باید یاد بگیرد، کار با فایلها و مدیریت دادههای ذخیرهشده روی دیسک است. در دنیای واقعی، برنامهها معمولاً فقط با ورودی لحظهای کاربر کار نمیکنند، بلکه نیاز دارند اطلاعات را ذخیره کنند، دوباره بخوانند و پردازش نمایند. پایتون با سادگی همیشگی خود، امکانات بسیار قدرتمند و در عین حال قابل فهمی برای کار با فایلها فراهم کرده است. در این درس یاد میگیریم چطور فایلها را باز کنیم، دادهها را از آنها بخوانیم، اطلاعات جدید در آنها بنویسیم و بدون دردسر مدیریتشان کنیم. این مهارت پایهای، در پروژههای واقعی مثل لاگگیری، ذخیره تنظیمات، کار با دادههای متنی و حتی پروژههای بکاند کاربرد مستقیم دارد و نادیده گرفتن آن، مسیر یادگیری پایتون را ناقص میکند.
باز کردن فایل با تابع open در پایتون
برای کار با هر فایلی در پایتون، اولین قدم استفاده از تابع open است. این تابع به ما اجازه میدهد فایل مورد نظر را در حالتهای مختلفی مثل خواندن، نوشتن یا افزودن باز کنیم. هنگام باز کردن فایل باید هم نام فایل و هم حالت دسترسی را مشخص کنیم. اگر فایل در مسیر برنامه وجود نداشته باشد، بسته به حالتی که انتخاب میکنیم، پایتون یا خطا میدهد یا فایل جدیدی میسازد. درک درست حالتهای مختلف open کمک میکند از پاک شدن ناخواسته دادهها جلوگیری کنیم و کنترل کاملی روی فایلها داشته باشیم. حالتهای رایج شامل r برای خواندن، w برای نوشتن و a برای افزودن به انتهای فایل هستند که هر کدام رفتار متفاوتی دارند.
مثال باز کردن فایل برای خواندن
file = open("data.txt", "r")
content = file.read()
print(content)
file.close()در این مثال، فایل متنی باز میشود، محتوای آن خوانده شده و در خروجی چاپ میشود. بستن فایل بعد از اتمام کار اهمیت زیادی دارد، چون منابع سیستم را آزاد میکند و از بروز خطاهای احتمالی جلوگیری مینماید.
خواندن اطلاعات از فایل در پایتون
خواندن اطلاعات از فایل یکی از رایجترین کاربردهای open در پایتون است. شما میتوانید کل محتوای فایل را یکجا بخوانید یا خط به خط آن را پردازش کنید. متد read کل فایل را به صورت یک رشته برمیگرداند، در حالی که readline فقط یک خط را میخواند و readlines تمام خطوط را به شکل یک لیست برمیگرداند. انتخاب روش مناسب به حجم فایل و نوع پردازش شما بستگی دارد. برای فایلهای بزرگ، خواندن خط به خط منطقیتر است تا حافظه سیستم بیدلیل درگیر نشود.
مثال خواندن فایل به صورت خط به خط
file = open("data.txt", "r")
for line in file:
print(line.strip())
file.close()در این مثال، هر خط فایل جداگانه خوانده میشود و با استفاده از strip فاصلههای اضافی حذف میگردد. این روش برای پردازش فایلهای متنی بسیار رایج و کاربردی است.
نوشتن اطلاعات در فایل با حالت w
گاهی لازم است دادههای جدیدی در فایل ذخیره کنیم یا اطلاعات قبلی را به طور کامل جایگزین کنیم. در این حالت از حالت w استفاده میشود. وقتی فایلی را با این حالت باز میکنیم، اگر فایل وجود داشته باشد، محتوای قبلی آن پاک میشود و اگر وجود نداشته باشد، فایل جدیدی ساخته میشود. به همین دلیل باید هنگام استفاده از این حالت دقت کافی داشت. نوشتن داده در فایل معمولاً برای ذخیره خروجی برنامهها، گزارشها یا اطلاعات کاربر استفاده میشود.
مثال نوشتن در فایل
file = open("data.txt", "w")
file.write("Hello Python\n")
file.write("This is a file example")
file.close()در این مثال، دو خط متن داخل فایل نوشته میشود. اگر فایل قبلاً وجود داشته باشد، محتوای قبلی آن به طور کامل حذف خواهد شد.
افزودن اطلاعات به فایل با حالت a
در بسیاری از سناریوها، نمیخواهیم اطلاعات قبلی فایل پاک شود، بلکه فقط قصد داریم دادههای جدیدی به انتهای آن اضافه کنیم. برای این کار از حالت a استفاده میشود. این حالت فایل را باز میکند و نوشتن را از انتهای آن ادامه میدهد. این روش برای ثبت لاگها، ذخیره تاریخچه فعالیتها و دادههایی که به مرور زمان رشد میکنند بسیار مناسب است.
مثال افزودن متن به انتهای فایل
file = open("data.txt", "a")
file.write("\nNew line added")
file.close()در این مثال، یک خط جدید بدون حذف اطلاعات قبلی به فایل اضافه میشود.
روش حرفهایتر: استفاده از with برای مدیریت فایل
یکی از بهترین و تمیزترین روشها برای کار با فایلها در پایتون، استفاده از دستور with است. این روش باعث میشود فایل به صورت خودکار بعد از اتمام کار بسته شود، حتی اگر خطایی در برنامه رخ دهد. استفاده از with نه تنها کد را خواناتر میکند، بلکه احتمال بروز خطاهای مرتبط با مدیریت منابع را به شدت کاهش میدهد و در پروژههای حرفهای تقریباً یک استاندارد محسوب میشود.
مثال خواندن فایل با with
with open("data.txt", "r") as file:
content = file.read()
print(content)در این روش، نیازی به فراخوانی close نیست و پایتون به صورت خودکار این کار را انجام میدهد.
جمعبندی آموزش کار با فایلها در پایتون
کار با فایلها یکی از مهارتهای کلیدی در یادگیری پایتون است که در پروژههای واقعی نقش بسیار مهمی ایفا میکند. در این درس یاد گرفتیم چطور فایلها را باز کنیم، اطلاعات را بخوانیم، دادههای جدید بنویسیم و به محتوای قبلی فایلها اضافه کنیم. همچنین با روش استاندارد و حرفهای with آشنا شدیم که مدیریت فایل را سادهتر و ایمنتر میکند. تسلط بر این مفاهیم پایهای، مسیر شما را برای ورود به مباحث پیشرفتهتر مثل کار با فایلهای CSV، JSON و حتی دیتابیسها هموار میسازد و باعث میشود برنامههای شما کاربردیتر و قابل اعتمادتر باشند.
