পাইথন ফাইল রিডিং এবং রাইটিং

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

কোন ফাইল থেকে ডেটা পড়া বা তাতে কিছু ডেটা রাখার জন্য আগে তা ওপেন করতে হয়। তা করা হয় open() দিয়ে। আর open() একটা অবজেক্ট রিটার্ণ করে। ওপেন এর ভেতর ফাইল এর নাম দিতে হয়। ধরে নিচ্ছি আমরা যে ডিরেক্টরিতে পাইথন প্রোগ্রামটি রেখেছি, ঐ একই ডিরেক্টরি/ফোল্ডারে file.txt নামক একটা ফাইল রয়েছে। যদি না থাকে, তাহলে একটা txt ফাইলে তৈরি করে নিন। file.txt এর ভেতরে কিছু লেখা রাখুন।

f = open('file.txt')
content = f.read()
print(content )

এখানে প্রথম লাইনে আমরা ফাইলটি অবজেক্ট হিসেবে ওপেন করেছি।এরপর তার ভেতরের কন্টেন্ট গুলো রিড করেছি। এবং তা content নামক একটা ভ্যারিয়েবলে রেখেছি। শেষে কন্টেন্ট ভ্যারিয়েবলটি প্রিন্ট করেছি।

ফাইলের ভেতরে যাই থাকবে, তাই আমাদের আউটপূট দিবে।

এখন যদি আমরা ফাইলের ভেতরের শুধু প্রথম লাইন পড়তে চাই, তার জন্যঃ

f = open('file.txt')
line = f.readline()
print(line)

সব গুলো লাইন একটা একটা করে রিড করার জন্য আমরা একটা লুপ চালাতে পারি, যেমনঃ

f = open( 'file.txt')
for line in f:
    print(line)

এখানে আমরা for লুপ ব্যবহার করেছি। for লুপ সম্পর্কে কন্ট্রোল স্টেটম্যান্ট চ্যাপ্টার থেকে জানা যাবে।

ফাইলে কিছু ডেটা রাখা / ফাইল রাইটিংঃ

আমরা যখন open() ব্যবহার করে কোন ফাইল ওপেন করি, তা ডিফল্ট ভাবে রিডিং মুডে ওপেন হয়। যেমন f = open( ‘file.txt’) এখানে আমাদের file.txt ফাইলটি রিডিং মুডে ওপেন হয়েছে। আমরা শুধু ফাইল থেকে ডেটা পড়তে পারব। কিন্তু কোন কিছু ফাইলে রাখতে পারব না। যদি আমরা কোন কিছু লিখতে চাই ফাইলে, তার জন্য মুড পরিবর্তন করতে হবে। যেমন রাইটিং মুডে ওপেন করার জন্যঃ

f = open( 'file.txt','w')

এখন ফাইলটি রাইটিং মুডে ওপেন হয়েছে। এবার আমরা এর ভেতরে কিছু লিখবঃ

f = open( 'file.txt','w')
f.write('This is a testn')

ফাইল নিয়ে কাজ করা শেষ হলে আমরা ফাইলটি ক্লোজ করব। close() ব্যবহার করে। এখন থেকে আমরা ফাইল ওপেন করে কাজ করা শেষে close() কল করে ফাইলটি ক্লোজ করব।

এখন যদি আমরা file.txt ফাইলটি ওপেন করে দেখি, তাহলে তার ভেতরে দেখতে পাবোঃ

This is a test

আগের ডেটা গুলো রিমুভ হয়ে গিয়েছে।

আমরা যদি ফাইলে কোন নাম্বার রাখতে চাই, তাহলে নাম্বারকে আগে স্ট্রিং এ কনভার্ট করে নিতে হবে, তারপর তা ফাইলে রাখতে পারব। যেমন আমরা pi এর মান ফাইলে রাখতে চাই, তার জন্যঃ

pi = 3.14159265359
s = str(pi)
f = open( 'file.txt', 'w' )
f.write(s)
f.close()

ফাইলটি ওপেন করলে এখন দেখতে পাবো পাই এর মান স্টোর করা হয়েছে। আমরা চাইলে পাই এর মানের সাথে কোন স্ট্রিং ও যোগ করে রাখতে পারিঃ

pi = 3.14159265359
s = str(pi)
f = open( 'file.txt', 'w' )
f.write( 'Value of pi: ' + s)
f.close()

এটা ফাইলে স্টোর কবেঃ Value of pi: 3.14159265359

এগুলো খুব সাধারণ কাজ। যদিও এই সাধারণ অপারেশন ব্যবহার করে আমরা অনেক গুলো কাজ করে ফেলতে পারি।

Leave a Reply