فعالیت محلی: حافظهٔ معمول برنامه بعد از پایان اجرا حفظ نمیشه. برای نگهداری یادداشت از فایل متنی استفاده میکنیم. حالت r برای خواندن هست و فایل باید وجود داشته باشه؛ w برای نوشتن هست و محتوای قبلی رو پاک میکنه؛ a برای افزودن به انتهاست. حالتهای باینری مثل rb و wb با bytes کار میکنن و encoding نمیگیرن.
وقتی فایل رو داخل with باز میکنی، بعد از پایان اون بخش خودکار بسته میشه؛ حتی اگه خطایی پیش بیاد. این مدیریت خودکار به کمک چیزی به اسم context manager انجام میشه. برای متن فارسی encoding="utf-8" رو صریح بنویس. مسیر نسبی، مثل notes.txt، از پوشهای حساب میشه که برنامه در اون اجرا شده؛ این پوشه همیشه همون پوشه فایل کد نیست.
from pathlib import Path
path = Path("notes.txt")
with path.open("w", encoding="utf-8") as file:
file.write("تمرین پایتون\n")
with path.open("a", encoding="utf-8") as file:
file.write("قدم دوم\n")
try:
with path.open("r", encoding="utf-8") as file:
print(file.read(), end="")
except FileNotFoundError:
print("فایل هنوز ساخته نشده است")
except (OSError, UnicodeError) as error:
print("خواندن فایل ممکن نشد:", error)
اول فایل آزمایشی تازهای انتخاب کن؛ w همون فایل انتخابشده رو بازنویسی میکنه. فعالیت بعد منطق خواندن رو با یک فایل متنی در حافظه بررسی میکنه تا به فایلهای شخصی رایانه دسترسی لازم نداشته باشه.
فعالیت شما
باز کردن، خواندن و نوشتن فایل رو تمرین کن و با with، UTF-8 و خطاهای رایج آشنا شو.