در حال بارگذاری...

بستن مطمئن فایل

در صفحهٔ قبل، close را خودتان می‌نوشتید. اگر برنامه پیش از رسیدن به آن خط می‌ایستاد، ممکن بود فایل باز بماند. with همین مشکل را حل می‌کند: وقتی خط‌های تورفته تمام شوند، فایل را می‌بندد. حتی اگر یکی از همان خط‌ها وسط کار بایستد، باز هم فایل بسته می‌شود.

صفحه saved را نشان می‌دهد و bread در فایل می‌ماند

python
with open("plate.txt", "w", encoding="utf-8") as plate:
    plate.write("bread\n")
print("saved")

روی صفحه فقط saved دیده می‌شود. bread روی صفحه نیست؛ داخل plate.txt است. write درست وقتی اجرا شد که فایل باز بود. بعد تورفتگی تمام شد و فایل بسته شد، و تازه آن‌وقت print اجرا شد. در این برنامه اصلاً close نیست. نه زیر print به آن نیاز دارید و نه داخل تورفتگی. نام plate فقط تا پایان تورفتگی به فایل باز اشاره می‌کند. encoding="utf-8" باعث می‌شود حرف‌ها به‌شکل متن در فایل بمانند. w هم هنوز هر چه از قبل در فایل بوده پاک می‌کند.

خط write زیر with تورفته است، و همین تورفتگی آن را داخل with می‌برد. print("saved") تورفته نیست، پس بیرون می‌ماند. این خط فقط وقتی اجرا می‌شود که کار داخل به پایان رسیده باشد.

اگر زیر همان تورفتگی 1 / 0 بنویسید، برنامه همان‌جا می‌ایستد و saved نوشته نمی‌شود. فایل باز نمی‌ماند. تورفتگی رها می‌شود و فایل بسته می‌شود، پیش از آن‌که برنامه به آخر برسد. این خط در برنامهٔ همین صفحه نیست.

صفحهٔ بعد دربارهٔ مسیر فایل است. این صفحه فقط نشان می‌دهد فایل چطور بسته می‌شود.

فایل با پایان تورفتگی بسته می‌شود

روی صفحه saved است و plate.txt کلمهٔ bread را دارد. در این برنامه close نیست. اگر خطی داخل تورفتگی بایستد، فایل باز هم بسته می‌شود، اما saved نوشته نمی‌شود. صفحهٔ بعد مسیر فایل است.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
5
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود