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

পাইথনে ফাইল অবজেক্ট: ফাইল পড়া, লিখা এবং ম্যানেজমেন্টের সম্পূর্ণ গাইড

পাইথনে ফাইল পড়া বা লিখতে কোনো লাইব্রেরি ইম্পোর্ট করার প্রয়োজন নয়, এটি নেটিভলি হ্যান্ডেল করা হয়।

সবसे প্রথম কাজ হলো বিল্ট-ইন open ফাংশন ব্যবহার করে একটি ফাইল অবজেক্ট পাওয়া। open ফাংশন একটি ফাইল খোলে এবং একটি ফাইল অবজেক্ট রিটার্ন করে। এই ফাইল অবজেক্টে মেথড এবং অ্যাট্রিবিউট থাকে যা পরবর্তীতে ফাইলটি ম্যানিপুলেট বা ইনফরমেশন রিট্রিভ করতে ব্যবহার করা যায়।

ফাইল কী?

ফাইল হলো ডিস্কে সম্পর্কিত ইনফরমেশন স্টোর করার জন্য একটি নামযুক্ত লোকেশন। ফাইলের নাম এবং লোকেশন থাকে, তাই এটি হার্ড ডিস্কে স্টোর হয়।

পাইথনে ফাইল অপারেশন নিম্নলিখিত ক্রমে করা হয়:

  • ফাইল খোলা (Opening a file)
  • পড়া বা লিখা অপারেশন (Read or Write operation)
  • ফাইল বন্ধ করা (Closing a file)

ফাইল খোলা - open() ফাংশন

ফাইল পড়তে বা লিখতে হলে অবশ্যই বিল্ট-ইন open() ফাংশন ব্যবহার করতে হবে।

open() ফাংশন দুটি আর্গুমেন্ট নেয়। প্রথমটি ফাইলের নাম, দ্বিতীয়টি ফাইলটি কোন উদ্দেশ্যে খোলা হচ্ছে (পড়তে বা লিখতে)।

সিনট্যাক্স

file_obj = open("filename", "mode")

প‍্যารামিটার

  • file_obj (হ্যান্ডেল): ফাইল অবজেক্ট রাখার ভেরিয়েবল।
  • filename: ফাইলের নাম।
  • mode: ইন্টারপ্রেটারকে বলায় ফাইলটি কোন মোডে ব্যবহার হবে।
>>> f = open("pytube1.py")  # করেন্ট ডিরেক্টরি থেকে ফাইল খোলা
>>> f = open(r"c:\users\rajesh\Documents\readme.txt")  # পাথ দিয়ে ফাইল খোলা

মোড আর্গুমেন্ট

দ্বিতীয় আর্গুমেন্ট mode অপশনাল। ফাইলটি পড়তে ('r'), লিখতে ('w'), বা অ্যাপেন্ড করতে ('a') চাইছেন কিনা তা স্পেসিফাই করা যায়। টেক্সট মোড বা বাইনারি মোডও স্পেসিফাই করা যায়। ডিফল্ট মোড হলো টেক্সট মোড।

পাইথন ফাইল মোডসমূহ

মোড বিবরণ
'r' ফাইল পড়ার জন্য খোলা। (ডিফল্ট)
'w' ফাইল লিখার জন্য খোলা। ফাইল না থাকলে নতুন তৈরি হয়, থাকলে ট্রাঙ্কেট হয়।
'x' এক্সক্লूसিভ ক্রিয়েশন। ফাইল ইতিমধ্যে থাকলে অপারেশন ফেইল হবে।
'a' ফাইলের শেষে অ্যাপেন্ড করার জন্য খোলা। ফাইল না থাকলে নতুন তৈরি হয়।
't' টেক্সট মোডে খোলা। (ডিফল্ট)
'b' বাইনারি মোডে খোলা।
'+' আপডেটিং (পড়া ও লিখা) এর জন্য খোলা।
>>> f = open("pytube1.py")          # 'r' বা 'rt' এর সমান
>>> f = open("pytube1.py", "w")    # টেক্সট মোডে লিখা
>>> f = open("color3.jpg", "r+b")  # বাইনারি মোডে পড়া ও লিখা

ডিফল্ট এনকোডিং প্ল্যাটফর্ম-ডিপেন্ডেন্ট। উইন্ডোজে 'cp1252', লিনাক্সে 'utf-8'। এনকোডিং স্পেসিফাই করা ভালো:

>>> f = open("pytube1.py", mode="r", encoding='utf-8')

টেক্সট ফাইল তৈরি করা

>>> f = open("textfile.txt", "w")
>>> f.write("Hello, Python")
13
>>> f.write("\nThis is our first line")
23
>>> f.write("\nThis is our second line")
24
>>> f.write("\nWhy writing more?, Because we can :)")
37
>>> f.close()

টেক্সট ফাইল পড়া

টেক্সট ফাইল পড়ার একাধিক পদ্ধতি রয়েছে।

১. সারো ফাইল পড়া: file.read()

>>> f = open("textfile.txt", "r")
>>> f.read()
'Hello, Python\nThis is our first line\nThis is our second line\nWhy writing more?, Because we can :)'

২. নির্দিষ্ট সংখ্যক ক্যারেক্টার পড়া: file.read(n)

>>> f = open("textfile.txt", "r")
>>> print(f.read(13))
Hello, Python

৩. লাইন বাই লাইন পড়া: file.readline()

>>> f = open("textfile.txt", "r")
>>> print(f.readline())
Hello, Python
>>> print(f.readline())
This is our first line

৪. সকল লাইন লিস্ট হিসেবে পাওয়া: file.readlines()

>>> f = open("textfile.txt", "r")
>>> print(f.readlines())
['Hello, Python\n', 'This is our first line\n', 'This is our second line\n', 'Why writing more?, Because we can :)']

৫. লুপ দিয়ে ফাইল অবজেক্ট ওভার ইটারেট করা (সর্বোচ্চ দক্ষ ও ক্লিন)

>>> f = open("textfile.txt", "r")
>>> for line in f:
    print(line)
Hello, Python
This is our first line
This is our second line
Why writing more?, Because we can :)

ফাইলে লিখা

>>> f = open("textfile.txt", "w")
>>> f.write("There are tons to reason to 'fall in love with PYTHON'")
54
>>> f.write("\nSee, i have added one more line :)")
36
>>> f.close()
>>> f = open("textfile.txt", "r")
>>> for line in f:
    print(line)
There are tons to reason to 'fall in love with PYTHON'
See, i have added one more line :).

ফাইল বন্ধ করা

ফাইলের কাজ শেষ হলে f.close() কল করতে হয়। এটি রিসোর্স মুক্ত করে।

>>> f = open("textfile.txt", "r")
>>> f.close()
>>> f.readlines()
ValueError: I/O operation on closed file.

with স্টেটমেন্ট (সেরা প্র্যাকটিস)

with স্টেটমেন্ট ফাইল অবজেক্টের সাথে ব্যবহার করলে সিনট্যাক্স ক্লিন হয়, এক্সেপশন হ্যান্ডলিং সহজ হয়, এবং ফাইল অটোমেটিক্যালি বন্ধ হয়।

সিনট্যাক্স

with open("filename") as file:

উদাহরণ: পড়া

>>> with open("textfile.txt") as f:
    for line in f:
        print(line)

উদাহরণ: লিখা (অ্যাপেন্ড মোডে)

>>> with open("textfile.txt", "a") as f:
    f.write("\nHello, Python-Here i come once again!")
38
>>> with open("textfile.txt") as f:
    for line in f:
        print(line)

টেক্সট ফাইলের লাইন স্প্লিট করা

split() ফাংশন দিয়ে লাইনগুলো স্প্লিট করা যায়। স্পেস, কোলন বা অন্য ক্যারেক্টার দিয়ে স্প্লিট করা যায়।

>>> with open("textfile.txt", "r") as f:
    data = f.readlines()
    for line in data:
        words = line.split()
        print(words)

আউটপুট (স্পেস দিয়ে স্প্লিট)

['There', 'are', 'tons', 'to', 'reason', 'to', "'fall", 'in', 'love', 'with', "PYTHON'"]
['See,', 'i', 'have', 'added', 'one', 'more', 'line', ':).']
['Hello,', 'Python-Here', 'i', 'come', 'once', 'again!']

আউটপুট (কোলন দিয়ে স্প্লিট: line.split(":"))

["There are tons to reason to 'fall in love with PYTHON'\n"]
['See, i have added one more line ', ').\n']
['Hello, Python-Here i come once again!']
  1. পাইথন Tkinter-এ asksaveasfile() ফাংশন

  2. পাইথনে ফাইল সিস্টেম ডিজাইন করা

  3. পাইথন Tkinter-এ askopenfile() ফাংশন ব্যবহার করে ফাইল খোলা

  4. পাইথনে জাঙ্ক ফাইল অর্গানাইজার: ফাইলগুলো স্বয়ংক্রিয়ভাবে ক্যাটাগরাইজ করুন