| کانال توسعه‌دهندگان پایتون |
7.13K subscribers
54 photos
2 videos
4 files
56 links
⭕️ کانال توسعه‌دهندگان پایتون دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
📌 باز و بسته کردن فایل با context manager

خیلی وقت cها توی کدهای Python دیده می cشه فایل رو با open() باز می cکنیم، ولی فراموش می cکنیم ببندیمش. این کار می cتونه باعث Memory Leak، خطاهای عجیب روی سیستم فایل و قفل شدن فایل بشه.

راه تمیز و Pythonic استفاده از کلمهٔ کلیدی with هست که خودش به cصورت خودکار فایل رو می cبنده، حتی اگر وسط کار Exception بیاد. 😎

#  روش ضعیف
f = open("data.txt", "r", encoding="utf-8")
text = f.read()
# اگر اینجا Exception بیاد، f.close() هرگز صدا زده نمی cشه
f.close()

# روش پیشنهادی با context manager
with open("data.txt", "r", encoding="utf-8") as f:
text = f.read()

print(len(text))


اینجا with تضمین می cکنه بعد از اتمام بلاک، چه کد موفق اجرا بشه چه Exception رخ بده، متد f.close() صدا زده بشه. این دقیقاً رفتاریه که برای منابع حساس مثل فایل، کانکشن دیتابیس، و ساکت cها می cخوایم. 🔐

نکتهٔ مهم دیگه اینه که with کد رو خواناتر و قابل cاعتمادتر می cکنه؛ هر کسی کد رو ببینه، فوراً متوجه scope استفاده از منبع می cشه و لازم نیست دنبال close() بگرده.

این الگو رو می cشه برای چند فایل همزمان هم استفاده کرد:

with open("input.txt", "r", encoding="utf-8") as fin, \
open("output.txt", "w", encoding="utf-8") as fout:
for line in fin:
fout.write(line.upper())


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

منبع رسمی برای جزئیات بیشتر:
Python Docs - The with statement

🔖 #Python #پایتون #Python #File_I/O #Context_Manager #Best_Practices #Code_Readability

👤 Developix

💎 Channel: @DevelopixPython