হ্যালো বন্ধুরা। আজকের এই আর্টিকেলে আমরা পাইথনে File Handling শিখবো সহজ বাংলা ভাষায়। আমাদের এই কোর্সটি বিশেষভাবে নব শিক্ষার্থীদের জন্য পরিকল্পিত।
Table of Contents
File Handling কী?
File Handling বলতে কম্পিউটারের ডিস্কে স্টোর করা ফাইলের সাথে পাইথন প্রোগ্রামের ইন্টারেকশনকে বোঝায়। এটি ওয়েব এপ্লিকেশনের জন্য খুবই গুরুত্বপূর্ণ অংশ । File Handling এর মাধ্যমে আমরা পাইথন প্রোগ্রামের সাহায্যে ফাইল তৈরি করতে (Create), ফাইল থেকে ডাটা পড়তে (Read), লিখতে (Write), ডাটা সংযোজন (Update )এবং ডাটা মুছে ফেলতে (Delete) পারি।
ফাইলের দুটি মূল ধরন রয়েছে:
টেক্সট ফাইল (Text File):
টেক্সট ফাইলে কেবলই ASCII অক্ষর থাকে। টেক্সট ফাইলকে আমরা t দিয়ে চিহ্নিত করি ।
যেমন – myfile.txt , hello_world.txt
বাইনারি ফাইল (Binary File):
বাইনারি ফাইলে যেকোনো ধরনের ডাটা থাকতে পারে, যেমন ছবি, ভিডিও, অডিও, ইত্যাদি। বাইনারি ফাইলকে আমরা b দিয়ে চিহ্নিত করি ।
যেমন – keylogs.bin , image1.jpg
পাইথনে ফাইল হ্যান্ডেলিং এর কাজ করতে গেলে আমাদের মূলত তিনটে steps ফলো করতে হবে।
Step – 1 :
ফাইলকে খুলতে হবে এবং কোন মোডে কাজ করব সেটা নির্ধারণ করতে হবে । (চিন্তার কিছু নেই আমরা মোড সম্পর্কে নীচে আলোচনা করেছি)
Step – 2 :
এই স্টেপে আমাদের ফাইল এর সাথে কাজ করতে হবে যেমন –
ফাইল থেকে ডেটা পড়া (Read), লেখা (Write), সংযোজন (Update )এবং ডেটা মুছে ফেলা (Delete)।
Step – 3 :
ফাইলের কাজ করা হয়ে গেলে,ফাইলটাকে বন্ধ করতে হবে।
Also Read :- What is Coding & Programming in Easy Bengali? প্রোগ্রামিং এবং কোডিং কি? 2023
Open() Function:
এই ফাংশন ব্যবহার করে ফাইল open (খোলা) যায়।
এই ফাংশান দুটো আর্গুমেন্ট নেয় l প্রথম আর্গুমেন্ট টি দিতেই হবে এবং দ্বিতীয় আর্গুমেন্টটি অপশনাল (Optional) ।
Syntax –
f=open("myfile.txt", "r / w / a / r+ / w+ / a+")
Pythonপ্রথম আর্গুমেন্ট একটি ফাইল এর নাম নেবে ।
উদাহরণস্বরূপ – file.txt
দ্বিতীয় আর্গুমেন্টে আমরা মোড দেব এবং সাথে কি রকম ফাইল খুলতে চাই সেটা দেব ( কিছু না দিলে এটি টেক্সট ফাইল খুলবে )
উদাহরণস্বরূপ : r / w / a / r+ / w+ / a+ অথবা rb / wb / ab / rb+ / wb+ / ab+
(b মানে বাইনারি ফাইল কিন্তু কিছু না দিলে এটি টেক্সট ফাইল খুলবে )
উদাহরণ –
f=open("myfile.txt")
Pythonএখানে f হলো ফাইল পয়েন্টার। এবং open ফাংশনের মাধ্যমে আমরা myfile.txt ফাইলটাকে খুলছি, যেহেতু আমি দ্বিতীয় আর্গুমেন্টে কিছু দিইনি তাহলে by default এটি read মোডে খুলবে।
f=open("binary.bin","b")
Pythonএখানে ওপেন ফাংশনের মাধ্যমে আমরা binary.bin ফাইলটিকে খুলছি এবং যেহেতু এটি একটি বাইনারি ফাইল তাই জন্য আমরা দ্বিতীয় আর্গুমেন্টে b দিয়েছি ।
Modes : –
r : এই মোড এর সাহায্যে আমরা একটা ফাইলে পড়তে পারি । যদি ফাইলটি আমাদের কম্পিউটারের ডিস্কে না থাকে তাহলে error দেবে।
w : এই মোড এর সাহায্যে আমরা একটি ফাইলে কিছু লিখতে পারি। তবে ফাইলটি যদি ডিস্কে না থাকে তাহলে প্রথমে ফাইলটি তৈরি হবে।
a : এই মোড এর সাহায্যে আমাদের ফাইলে যা ডেটা আছে তার পরের থেকে লিখতে পারি। তবে ফাইলটি যদি ডিস্কে না থাকে তাহলে প্রথমে ফাইল তৈরি হবে।
r+ : এই মোড এর সাহায্যে আমরা একটা ফাইলে পড়তে এবং লিখতে পারি ।
w+ : এই মোড এর সাহায্যে আমরা একটি ফাইলে পড়তে এবং লিখতে পারি। ফাইলটি যদি ডিস্কে থাকে তাহলে ফাইলটির মধ্যে থাকা সমস্ত ডাটা মুছে যাবে এবং নতুন ডাটা এন্ট্রি হবে, তবে ফাইলটি যদি ডিস্কে না থাকে তাহলে প্রথমে ফাইলটি তৈরি হবে।
Close() function:
ফাইল নিয়ে কাজ করা শেষ হলে আমাদের ফাইলটি কে বন্ধ করতে হবে।
Syntax:
f.close()
Pythonএখানে f হলো ফাইল পয়েন্টার।
Delete a file
Step 1 – কোনো ফাইলকে delete করার জন্যে আমাদের OS module কে import করতে হবে।
Step 2 – remove() মেথড ব্যবহার করতে হবে।
Syntax:
import os
os.remove("__file name__")
PythonExample:
Rename a file
Step 1 – কোনো ফাইলকে Rename করার জন্যে আমাদের os module কে import করতে হবে।
Step 2 – rename() মেথড ব্যবহার করতে হবে।
Syntax:
import os
os.rename("__old file name__","__new file name__")
PythonExample:
Also Read :- Python কি এবং কেন শিখব? What is Python in Easy Bengali? 2023
read() method : –
read method – পাইথনে read মেথড ইউজ হয় একটি ফাইল থেকে সমস্ত কন্টেন্ট / ডেটা পড়ার জন্য। এটি ফাইল অবজেক্টের একটি built – in মেথড।যা open() ফাংশন দ্বারা return করা হয়।
এই read মেথডটি একটি অপশনাল আর্গুমেন্ট নেয়। যেটা বোঝায় যে ফাইল থেকে কত byte ডেটা পড়বে।
যদি কোনো আর্গুমেন্ট না দেওয়া থাকে তাহলে এটি পুরো ফাইল টি পড়বে।
Syntax –
content= file_object.read(20)
Pythonor
content= file_object.read()
PythonArguments-
Size- এটি একটি অপশনাল integer যেটা বোঝায় যে ফাইল থেকে কত byte ডেটা পড়বে।
যদি কোনো আর্গুমেন্ট না দেওয়া থাকে তাহলে এটি পুরো ফাইল টি পড়বে।
content= file_object.read(20)
PythonReturn value –
এই read মেথডটি, একটি string ফরম্যাটে ফাইলের সমস্ত কন্টেন্ট বা ডেটা রিটার্ন করে।
যখন এই read মেথডটি ফাইলের শেষে পৌঁছায়, তখন ডেটা পড়া বন্ধ করে দেয় এবং একটি empty string ফেরত দেয় যাতে বোঝা যায় যে পড়ার জন্য আর কোন ডেটা নেই।
Example-1 : Reading Entire file
Step 1 – উপরের কোডটি প্রথমে myfile.txt নামক একটি ফাইল read মোডে খুলবে। এবং f নামক variable ফাইল অবজেক্ট টি কে রাখবে।
Step 2 – read মেথডটি ফাইল অবজেক্ট কে call করে পুরো ফাইলের ডেটা পড়বে।
Step 3 – সমস্ত ডেটা বা কনটেন্ট এবারে print করবে।
Example-2 : Reading a specific number of bytes
Step 1 – উপরের কোডটি প্রথমে myfile.txt নামক একটি ফাইল read মোডে খুলবে। এবং f নামক variable ফাইল অবজেক্ট টি কে রাখবে।
Step 2 – read মেথডটি ফাইল অবজেক্ট কে call করে ফাইলের প্রথম 50 byte ডেটা পড়বে।
Step 3 – এবারে ওই ডেটা print করবে।
Example-3 : Reading only one line from file
Step 1 – উপরের কোডটি প্রথমে myfile.txt নামক একটি ফাইল read মোডে খুলবে। এবং f নামক variable ফাইল অবজেক্ট টি কে রাখবে।
Step 2 – readline মেথডটি ফাইল অবজেক্ট কে call করে ফাইলের প্রথম লাইন পড়বে।
Step 3 – এবারে ওই ডেটা print করবে।
Example-4 : Reading the file line by line
Step 1 – উপরের কোডটি প্রথমে myfile.txt নামক একটি ফাইল read মোডে খুলবে। এবং f নামক variable ফাইল অবজেক্ট টি কে রাখবে।
Step 2 – for loop ফাইলের লাইনের উপর পুনরাবৃত্তি করে এবং প্রতিটি লাইন print করবে।
Also Read :- Learn Python Free for Beginners in Bengali 2023
write() method : –
write method – পাইথনে write মেথড ব্যাবহার হয় একটি ফাইল এ কন্টেন্ট / ডেটা লেখার জন্য। এটি ফাইল অবজেক্টের একটি built – in মেথড।যা open() ফাংশন দ্বারা return করা হয়।
এই write মেথডটি একটি string আর্গুমেন্ট নেয়। যা ফাইলে লেখার বিষয়বস্তু।
Syntax –
file_object.write("__any string__")
PythonArguments-
String- যা ফাইলে লেখার বিষয়বস্তু।
Return value –
এই write() মেথডটি, ফাইলে লেখা bytes এর সংখ্যা return করে।
Example-1 : Writing a string to a file
Step 1 – উপরের কোডটি প্রথমে myfile.txt নামক একটি ফাইল তৈরি করবে এবং write (w) মোডে খুলবে। এবং f নামক variable ফাইল অবজেক্ট টি কে রাখবে।
Step 2 – Write() মেথডটি ফাইল অবজেক্ট কে call করবে এবং আমরা যে string/ডেটা টি write () method এর আর্গুমেন্ট এ দিয়েছি সেটা ফাইলে insert করবে।
Step 3 – আমরা ফাইলটিকে খুলবো এবং ডেটা দেখতে পারবো।
Example-2 : Writing multiple string to a file
Step 1 – উপরের কোডটি প্রথমে myfile.txt নামক একটি ফাইল তৈরি করবে এবং write (w) মোডে খুলবে। এবং f নামক variable ফাইল অবজেক্ট টি কে রাখবে।
Step 2 – Write() মেথডটি ফাইল অবজেক্ট কে call করবে এবং আমরা যে string/ডেটা টি write () method এর আর্গুমেন্ট এ দিয়েছি সেটা ফাইলে insert করতে থাকবে।
Step 3 – আমরা ফাইলটিকে খুলবো এবং ডেটা দেখতে পারবো।
Example-3 : Writing a list of string to a file
Step 1 – উপরের কোডটি প্রথমে myfile.txt নামক একটি ফাইল তৈরি করবে এবং write (w) মোডে খুলবে। এবং f নামক variable ফাইল অবজেক্ট টি কে রাখবে।
Step 2 – আমরা একটি list নেব যেখানে অনেক string থাকবে এরপর forloop ব্যবহার করে একটা একটা string ফাইলে insert করব write() মেথডের সাহায্যে।
Step 3 – আমরা ফাইলটিকে খুলবো এবং ডেটা দেখতে পারবো।
Also Read :- Function in Python | Easy Bengali 2024
tell() method : –
tell method -পাইথনে tell() মেথড ফাইল পয়েন্টারের বর্তমান অবস্থান(current position) পেতে ব্যবহৃত হয়। ফাইল পয়েন্টার হল একটি কার্সার যা ফাইলের বর্তমান অবস্থান(current position) নির্দেশ করে যেখানে পরবর্তী read বা write অপারেশন হবে।
tell() মেথড কোন আর্গুমেন্ট নেয় না এবং এটি ফাইল পয়েন্টারের বর্তমান অবস্থানকে (current position) নির্দেশ করে এবং একটি interger return করে।
Syntax –
file_object.tell()
PythonArguments –
tell() মেথড কোন আর্গুমেন্ট নেয় না।
Return value –
এটি ফাইল পয়েন্টারের বর্তমান অবস্থান (current position) return করে , যেটি একটি integer ভ্যালু।
Example – Getting the current position of the file pointer
উপরের কোডটি তে আমরা প্রথমে myfile.txt ফাইলটিকে খুলবো এবং tell() মেথড ব্যাবহার করে আমরা পয়েন্টার এর current position এর ভ্যালু দেখবো 0 মানে পয়েন্টার টি ফাইলের প্রথম লাইন এর প্রথম অক্ষর এ পয়েন্ট করে আছে।
এখন আমরা পরের 50 byte টেক্সট প্রিন্ট করবো। তার মানে এখন ফাইল পয়েন্টার টি 50 নম্বর অক্ষর এ পয়েন্ট করে আছে। এখন tell() মেথড ব্যাবহার করে পয়েন্টার এর current position এর ভ্যালু 50 দেখলাম ।
Also Read :- What is Module in Python | Learn in Easy Bengali 2024
seek() method : –
Seek method – পাইথনে seek() মেথডটি ফাইল পয়েন্টারের অবস্থান পরিবর্তন করতে ব্যবহৃত হয়। ফাইল পয়েন্টার হল একটি কার্সার(cursor) যা ফাইলের বর্তমান অবস্থান নির্দেশ করে যেখানে পরবর্তী read বা write অপারেশন হবে। seek() মেথড দুটি আর্গুমেন্ট নেয়: offset এবং whence। অফসেট হল ফাইল পয়েন্টার কে কত byte সরাতে হবে এবং whence হলো রেফারেন্স পয়েন্ট মানে যেখান থেকে ফাইল পয়েন্টার সরাতে হবে ।
Syntax –
file_object.seek(offset,whence)
PythonReturn value-
seek() মেথডটি কোন ভ্যালু(value) রিটার্ন করে না।
Arguments –
offset – এটি একটি integer ভ্যালু যা নির্ধারণ করে যে ফাইল পয়েন্টার কে কত byte সরাতে হবে।
whence – একটি integer ভ্যালু যা উল্লেখ করে যেখান থেকে ফাইল পয়েন্টার সরাতে হবে।
ডিফল্ট মান হল 0, যার মানে হল ফাইলের শুরু থেকে ফাইল পয়েন্টার সরানো।
Value of whence –
0 : যার মানে হল ফাইলের শুরু থেকে ফাইল পয়েন্টার সরানো।
1: যার মানে হল বর্তমান অবস্থান(current position) থেকে ফাইল পয়েন্টার সরানো।
2 : যার মানে হল ফাইলের শেষ থেকে ফাইল পয়েন্টার সরানো।
Example – 1 : move the file pointer to the beginning of the file.
উপরের কোডটি myfile.txt ফাইলটিকে read মোডে খুলবে এবং ফাইল অবজেক্টটিকে f variable এ assign করবে। ফাইল পয়েন্টারটিকে ফাইলের শুরুতে সরানোর জন্য seek() মেথডটি f কে call করবে। ফাইলের সম্পূর্ণ বিষয়বস্তু পড়ার জন্য read() মেথডটি f কে call করবে। তারপর ফাইলের কনটেন্ট / ডেটা কনসোলে প্রিন্ট হবে।
Example – 2 : move the file pointer 50 bytes from the current position.
উপরের কোডটি myfile.txt ফাইলটিকে read মোডে খুলবে এবং ফাইল অবজেক্টটিকে f variable এ assign করবে। ফাইলের প্রথম 50 বাইট পড়ার জন্য read() মেথড f কে কল করবে। তারপর প্রথম 50 byte কনসোলে print হবে।
ফাইল পয়েন্টার 50 byte বর্তমান অবস্থান(current position) থেকে সরানোর জন্য তারপর seek() মেথডটি f কে কল করবে। ফাইলের পরবর্তী 50 byte পড়ার জন্য read() মেথড আবার f কে কল করবে। তারপর , পরবর্তী 50 byte ডেটা কনসোলে print হবে।
Example – 3 : move the file pointer 10 bytes from the end of the file.
উপরের কোডটি myfile.txt ফাইলটিকে read মোডে খুলবে এবং ফাইল অবজেক্টটিকে f variable এ assign করবে। ফাইলের শেষ থেকে ফাইল পয়েন্টার 10 byte সরানোর জন্য seek() মেথড f কে কল করবে। ফাইলের শেষ 10 byte পড়ার জন্য read() মেথড f কে কল করবে। শেষ 10 byte তারপর কনসোলে print হবে.