ইতোমধ্যে বেশ কয়েকবার বলা হয়েছে যে, ফাইল নিয়ে কাজ শেষে সেটিকে ক্লোজ করা খুব দরকারি। তো, এই দরকারি কাজটা যাতে বার বার ভুল হয়ে না যায় এর জন্য কিছু টেকনিক অবলম্বন করা যেতে পারে বা অভ্যাসে পরিণত করা যেতে পারে। যেমন, নিচের প্রোগ্রামটি দেখি -
try:
file_to_work = open("Test.txt", "r")
content = file_to_work.read()
print(content)
finally:
file_to_work.close()
মনে আছে, আমরা কয়েক চ্যাপ্টার আগেই finally
ব্লক নিয়ে আলোচনা করেছি? try
, except
এর সাথে finally
ব্লকের ব্যবহার আমরা দেখেছি এবং জানি যে এই ব্লকের মধ্যে যাই থাকুক না কেন, সেই কোড গুলো রান করবেই এমনকি যদি এর উপরের try
, except
ব্লকে অনাকাঙ্ক্ষিত কিছু ঘটেও। এটাই একটা টেকনিক, ফাইল ক্লোজ করতে ভুল না করার।
উপরের প্রোগ্রামে আমরা ট্রাই ব্লকের মধ্যে ফাইল ওপেন এবং পড়ার কাজ করেছি এবং ফাইনালি ব্লকের মধ্যে ক্লোজ করেছি। এতে করে, ঘটনা যাই হোক, ফাইল ক্লোজ হবেই।
আরও একটি বেস্ট প্র্যাকটিস আছে। with
স্টেটমেন্টের ব্যবহার। প্রথমে একটি উদাহরণ দেখি তারপর বিশ্লেষণ করা যাবে -
with open("Test.txt") as f:
print(f.read())
আউটপুট,
I am writing!!!
with
স্টেটমেন্ট আসলে একটি টেম্পোরারি ভ্যারিয়েবল তৈরি করে। উপরের প্রোগ্রামে এটি ব্যবহার করে open("Test.txt")
স্টেটমেন্টটির জন্য একটি টেম্পোরারি ভ্যারিয়েবল তৈরি করা হয়েছে f
নামে। অর্থাৎ বস্তুত এমন হয়েছে f = open("Test.txt")
. এই f
কে with
এর আওতাভুক্ত কোডে অর্থাৎ এর স্কোপে ব্যবহার করা যায়। আবার, with
ব্যবহারের আরেকটি মজার ব্যাপার হচ্ছে এর আওতাভুক্ত কোড ব্লকের কাজ শেষ হয়ে গেলেই এর দ্বারা তৈরি টেম্পোরারি ভ্যারিয়েবলও ডেস্ট্রয় হয়ে যায়। এতে করে আমাদের উদ্দেশ্য হাসিল হয় তথা ফাইল ক্লোজের কাজটি হয়ে যায়। এখন পর্যন্ত এটাকেই ফাইল নিয়ে ছোট খাটো কাজ করার বেস্ট প্র্যাকটিস হিসেবে ধরা হয়।
সংকলন - নুহিল মেহেদী