ফাইলে লেখা

পাইথনের মেথডের নাম গুলোও কেন যেন আমার কথা মাথায় রেখেই দেয়া। যেমন ফাইল পড়ার ফাংশনের নাম read এবং কেউ না বলে দিলেও ফাইলে লেখার ফাংশনের নাম যে write সেটা আপনি এতক্ষণে ধরে নিয়েছে। আর হ্যাঁ, আপনার ধারনা ভুল না। ফাইল থেকে পড়েন আর ফাইলে লিখেন, যাই করেন না কেন ফাইলকে আগে ওপেন করেই নিতে হবে। আবার কাজ শেষে বন্ধ করতে হবে (উচিৎ)।

উদাহরণ,

file_to_work = open("Test.txt", "w")
file_to_work.write("I am writing!!!")
file_to_work.close()

file_to_work = open("Test.txt", "r")
print(file_to_work.read())
file_to_work.close()

উপরোক্ত প্রোগ্রামের দুটি অংশ। প্রথম অংশে ফাইলকে ওপেন করে সেখানে একটি লাইন লেখা হয়েছে। আমাদের চলতি উদাহরণ মোতাবেক এই নামের ফাইলটি আগে থেকেই ছিল। কিন্তু w মোডে খোলার কারনে এবং এখানে নতুন করে লেখার কারনে ওই ফাইলের আগের সব কন্টেন্ট মুছে যাবে এবং নতুন write করা কন্টেন্ট লেখা হবে। যদি ওই নামের ফাইল না থাকতো, তাহলে পাইথন নতুন করে ওই নামে একটি ফাইল তৈরি করে সেখানে লিখতো। লেখা শেষে ফাইলটিকে ক্লোজ করা হয়েছে।
দ্বিতীয় অংশে আবার সেই ফাইলকে পড়ার জন্য r মোডে খোলা হয়েছে এবং সব কন্টেন্ট পড়ে স্ক্রিনে প্রিন্ট করা হয়েছে।

আউটপুট,

I am writing!!!

চাইলে ফাইল লেখার কাজ সফল হল কিনা এবং কি পরিমাণ কন্টেন্ট ফাইলে লেখা হল সেটা যাচাই করার জন্য write মেথডের রিটার্ন ভ্যালুকে ক্যাপচার করে দেখা যেতে পারে নিচের মত করে -

file_to_work = open("Test.txt", "w")
is_writing_done = file_to_work.write("I am writing!!!")

if is_writing_done:
    print("Yes, {0} byte(s) has been written!".format(is_writing_done))
file_to_work.close()

আউটপুট,

Yes, 15 byte(s) has been written!

সংকলন - নুহিল মেহেদী