কম্পিউটার টিউটোরিয়াল

পাইথনে ফাইল খোলা এবং বন্ধ করা (Opening and Closing Files)

এখন পর্যন্ত আপনি স্ট্যান্ডার্ড ইনপুট এবং আউটপুট থেকে পড়া-লেখা করছিলেন। এখন আসল ডেটা ফাইল ব্যবহার করা শিখব।

পাইথন ডিফল্টভাবে ফাইল ম্যানিপুলেশনের জন্য বেসিক ফাংশন এবং মেথড সরবরাহ করে। আপনি file অবজেক্ট ব্যবহার করে অধিকাংশ ফাইল ম্যানিপুলেশন করতে পারেন।

open ফাংশন

ফাইল পড়া বা লেখার আগে পাইথনের বিল্ট-ইন open() ফাংশন ব্যবহার করে খোলা লাগে। এই ফাংশন একটি file অবজেক্ট তৈরি করে, যার মাধ্যমে অন্যান্য সাপোর্ট মেথড কল করা যায়।

সিনট্যাক্স

file object = open(file_name [, access_mode][, buffering])

প্যারামিটার বিবরণ:

  • file_name - অ্যাক্সেস করার ফাইলের নাম সম্বলিত স্ট্রিং।
  • access_mode - ফাইল কোন মোডে খোলা হবে (রিড, রাইট, অ্যাপেন্ড ইত্যাদি)। নিচের টেবিলে সম্ভাব্য মানগুলো দেওয়া আছে। এটি ঐচ্ছিক, ডিফল্ট হলো read (r)।
  • buffering - 0 হলে বাফারিং হয় না। 1 হলে লাইন বাফারিং। 1-র চেয়ে বড় ইন্টিজার হলে ইন্ডিকেট করা বাফার সাইজে বাফারিং। 네가টিভ হলে সিস্টেম ডিফল্ট।

ফাইল খোলার বিভিন্ন মোড:

ক্রমিক নংমোড ও বর্ণনা
1r
শুধু পড়ার জন্য ফাইল খোলা। ফাইল পয়েন্টার ফাইল শুরুতে থাকে। ডিফল্ট মোড।
2rb
বাইনারি ফরম্যাটে শুধু পড়ার জন্য। ফাইল পয়েন্টার শুরুতে।
3r+
পড়া এবং লেখা উভয়ের জন্য। ফাইল পয়েন্টার শুরুতে।
4rb+
বাইনারি ফরম্যাটে পড়া এবং লেখা উভয়ের জন্য।
5w
শুধু লেখার জন্য। ফাইল থাকলে ওভাররাইট, না থাকলে নতুন তৈরি।
6wb
বাইনারি ফরম্যাটে শুধু লেখার জন্য।
7w+
লেখা এবং পড়া উভয়ের জন্য। ফাইল থাকলে ওভাররাইট।
8wb+
বাইনারি ফরম্যাটে লেখা এবং পড়া উভয়ের জন্য।
9a
অ্যাপেন্ডের জন্য। ফাইল থাকলে পয়েন্টার শেষে। না থাকলে নতুন তৈরি।
10ab
বাইনারি ফরম্যাটে অ্যাপেন্ডের জন্য।
11a+
অ্যাপেন্ড এবং পড়া উভয়ের জন্য।
12ab+
বাইনারি ফরম্যাটে অ্যাপেন্ড এবং পড়া উভয়ের জন্য।

file অবজেক্ট অ্যাট্রিবিউট

ফাইল খোলার পর file অবজেক্ট পাওয়া যাবে, যার মাধ্যমে ফাইল সম্পর্কিত তথ্য পাওয়া যায়:

ক্রমিক নংঅ্যাট্রিবিউট ও বর্ণনা
1file.closed
ফাইল বন্ধ থাকলে true, অন্যথায় false।
2file.mode
ফাইল কোন মোডে খোলা হয়েছিল।
3file.name
ফাইলের নাম।
4file.softspace
প্রিন্টে স্পেস এক্সপ্লিসিটলি দরকার হলে false, অন্যথায় true।

উদাহরণ

#!/usr/bin/python
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace

আউটপুট

Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Softspace flag : 0

close() মেথড

file অবজেক্টের close() মেথড অনরাইটেন তথ্য ফ্লাশ করে এবং ফাইল অবজেক্ট বন্ধ করে, এরপর আর লেখা যাবে না।

পাইথন স্বয়ংক্রিয়ভাবে ফাইল বন্ধ করে যখন ফাইল রেফারেন্স অবজেক্ট অন্য ফাইলে রি-অ্যাসাইন করা হয়। তবে close() মেথড ব্যবহার করা ভালো প্র্যাকটিস।

সিনট্যাক্স

fileObject.close()

উদাহরণ

#!/usr/bin/python
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
fo.close()

আউটপুট

Name of the file: foo.txt
  1. C#-তে ফাইল কম্প্রেস এবং ডিকম্প্রেস করা

  2. C#-এ টেক্সট ফাইল পড়া এবং লেখা

  3. পাইথনে openpyxl মডিউল দিয়ে এক্সেল ফাইল পড়া ও লেখা

  4. পাইথনে জিপ ফাইল নিয়ে কাজ করা (zipfile মডিউল)