مقدمه

یکی از مهم‌ترین کاربردهای کار با فایل‌ها، ذخیره‌سازی دائمی اطلاعات تولید شده توسط برنامه یا کاربر است. با نوشتن داده‌ها در یک فایل، می‌توانیم آنها را برای استفاده‌های بعدی حفظ کنیم. پایتون به ما اجازه می‌دهد تا به سادگی در فایل‌ها بنویسیم، چه بخواهیم یک فایل جدید ایجاد کنیم، چه محتوای یک فایل موجود را بازنویسی کنیم، یا داده‌های جدیدی را به انتهای آن اضافه کنیم.

نوشتن در یک فایل خالی

برای نوشتن در یک فایل، باید تابع open() را با یک آرگومان دوم که «حالت» (mode) باز کردن فایل را مشخص می‌کند، فراخوانی کنیم. برای نوشتن، از حالت 'w' استفاده می‌کنیم.

احتیاط: باز کردن یک فایل در حالت 'w' در صورتی که فایل از قبل وجود داشته باشد، محتوای قبلی آن را پاک خواهد کرد. اگر فایل وجود نداشته باشد، پایتون یک فایل جدید با آن نام ایجاد می‌کند.

Copy Icon PYTHON
filename = 'programming.txt'

with open(filename, 'w') as file_object:
    file_object.write("I love programming.")

در این مثال، ما فایل programming.txt را در حالت نوشتن ('w') باز می‌کنیم. سپس، با استفاده از متد write() روی شیء فایل، یک رشته را در آن می‌نویسیم.

برخلاف تابع print، متد write به صورت خودکار کاراکتر newline را به انتهای رشته اضافه نمی‌کند. برای نوشتن چندین خط، باید به صورت دستی کاراکتر \n را به رشته‌های خود اضافه کنیم.

Copy Icon PYTHON
filename = 'programming.txt'

with open(filename, 'w') as file_object:
    file_object.write("I love programming.\n")
    file_object.write("I love creating new games.\n")

پس از اجرای این کد، فایل programming.txt حاوی دو خط متن خواهد بود.

الحاق کردن به یک فایل

اگر بخواهید داده‌های جدیدی را به یک فایل موجود اضافه کنید بدون اینکه محتوای قبلی آن پاک شود، باید فایل را در حالت «الحاق» (append mode) باز کنید. برای این کار، از آرگومان 'a' در تابع open() استفاده می‌کنیم.

Copy Icon PYTHON
filename = 'programming.txt'

with open(filename, 'a') as file_object:
    file_object.write("I also love finding meaning in large datasets.\n")
    file_object.write("I love creating apps that can run in a browser.\n")

با اجرای این کد، دو خط جدید به انتهای محتوای قبلی فایل programming.txt اضافه می‌شود. اگر فایل وجود نداشته باشد، پایتون یک فایل خالی جدید ایجاد کرده و سپس محتوا را در آن می‌نویسد.

در این درس با اصول اولیه نوشتن داده در فایل‌های متنی آشنا شدیم. دیدیم که چگونه می‌توان با استفاده از حالت‌های مختلف w و a در تابع open، فایل‌ها را برای نوشتن یا الحاق باز کرده و با متد write محتوای مورد نظر را در آنها ذخیره کرد. اما اگر در حین کار با فایل خطایی رخ دهد (مثلاً فایل مورد نظر پیدا نشود)، برنامه ما کرش خواهد کرد. در درس بعدی، به سراغ «استثناها» خواهیم رفت و یاد می‌گیریم که چگونه این نوع خطاها را به صورت کنترل‌شده مدیریت کنیم.