ICTebook
← কম্পিউটার অফিস অ্যাপ্লিকেশন-২

কম্পিউটার অফিস অ্যাপ্লিকেশন-২ · অধ্যায়-৪ : পাইথন প্রোগ্রামিং

অধ্যায় ৪.৪: পাইথন ডিকশনারি ও ফাইল

তারকা অনুযায়ী প্রশ্ন বাছাই

সংক্ষিপ্ত প্রশ্ন (১৯টি)

  1. ৪.৪-সং-১বই: পৃষ্ঠা ১১৫

    ১.write( ) ফাংশনের কাজ কী? এর সিনট্যাক্স লেখ।

    উত্তর

    কী-ওয়ার্ড: ফাইলে স্ট্রিং লেখা, file.write(string), লেখা অক্ষরের সংখ্যা ফেরত, w/a মোড

    write() ফাংশনের কাজ: write() মেথড একটি খোলা ফাইলে স্ট্রিং লেখে এবং কতটি অক্ষর লেখা হলো তা ফেরত দেয়। ফাইলটি "w" (লেখা) বা "a" (যোগ) মোডে খুলতে হয়। এটি নিজে থেকে নতুন লাইন যোগ করে না, তাই প্রয়োজনে "\n" দিতে হয়।

    সিনট্যাক্স: file_object.write(string)

    f = open("note.txt", "w")
    n = f.write("Python file handling\n")
    f.close()
    print(n, "টি অক্ষর লেখা হয়েছে")
    

    নমুনা আউটপুট:

    21 টি অক্ষর লেখা হয়েছে
    
  2. ৪.৪-সং-২বই: পৃষ্ঠা ১১৫

    ২.input( ) ফাংশন এবং open( ) ফাংশনের কাজ কী?

    উত্তর

    কী-ওয়ার্ড: input(): ব্যবহারকারীর ইনপুট, স্ট্রিং ফেরত; open(): ফাইল খোলা, ফাইল অবজেক্ট ফেরত, মোড

    input() ফাংশন: কীবোর্ড থেকে ব্যবহারকারীর ইনপুট নেয় এবং তা স্ট্রিং আকারে ফেরত দেয়। প্রম্পট বার্তাও দেখানো যায়। সংখ্যা হিসেবে চাইলে int() বা float() দিয়ে রূপান্তর করতে হয়।

    open() ফাংশন: নির্দিষ্ট মোডে (পড়া, লেখা, যোগ) একটি ফাইল খোলে এবং একটি ফাইল অবজেক্ট ফেরত দেয়, যার মাধ্যমে ফাইলে পড়া-লেখা করা যায়।

    উদাহরণ: name = input("নাম: ") এবং f = open("data.txt", "r")

  3. ৪.৪-সং-৩বই: পৃষ্ঠা ১১৫

    ৩.পাইথনের বেসিক ফাইল অপারেশনগুলো কী কী?

    উত্তর

    কী-ওয়ার্ড: ফাইল খোলা (open), পড়া (read), লেখা (write), যোগ করা (append), বন্ধ করা (close)

    পাইথনের বেসিক ফাইল অপারেশনগুলো:

    1. ফাইল খোলা: open("file.txt", mode)
    2. ফাইল পড়া: read(), readline(), readlines()
    3. ফাইলে লেখা: write() ("w" মোড)
    4. ফাইলে যোগ করা: write() ("a" মোড)
    5. ফাইল বন্ধ করা: close()

    এছাড়া os মডিউল দিয়ে ফাইলের নাম পরিবর্তন (os.rename) ও মুছে ফেলা (os.remove) যায়।

    ফাইল অপারেশনের ধাপ

    ফাইল অপারেশনের ধাপ

  4. ৪.৪-সং-৪বই: পৃষ্ঠা ১১৬

    ৪.ডিকশনারিতে ব্যবহৃত হয় এমন যেকোনো তিনটি বিল্ট-ইন মেথড বর্ণনা কর।

    উত্তর

    কী-ওয়ার্ড: keys(), values(), items(), get(), update(), pop()

    ডিকশনারির তিনটি (ও অতিরিক্ত) বিল্ট-ইন মেথড:

    মেথডকাজ
    keys()সব কী-এর তালিকা দেয়
    values()সব মানের তালিকা দেয়
    items()সব (কী, মান) জোড়া দেয়
    get(key, default)কী-এর মান দেয়; কী না থাকলে ত্রুটির বদলে default দেয়
    update(dict)একাধিক কী-মান যোগ বা পরিবর্তন করে
    pop(key)নির্দিষ্ট কী-মান জোড়া মুছে মানটি ফেরত দেয়
    d = {"a": 1, "b": 2}
    print(list(d.keys()))      # সব কী
    print(list(d.values()))    # সব মান
    print(list(d.items()))     # কী-মান জোড়া
    print(d.get("c", 0))       # নিরাপদে মান পাওয়া
    d.pop("a")                 # একটি জোড়া মুছে ফেলা
    print(d)
    

    নমুনা আউটপুট:

    ['a', 'b']
    [1, 2]
    [('a', 1), ('b', 2)]
    0
    {'b': 2}
    
  5. ৪.৪-সং-৫বই: পৃষ্ঠা ১১৬

    ৫.ডিকশনারিতে ব্যবহৃত কী-সমূহের বৈশিষ্ট্য লেখ।

    উত্তর

    কী-ওয়ার্ড: অনন্য, অপরিবর্তনযোগ্য ধরন (str, int, tuple), কেস-সেনসিটিভ, লিস্ট কী নয়, পুনরাবৃত্তিতে মান বদলায়

    ডিকশনারির কী-সমূহের বৈশিষ্ট্য:

    1. প্রতিটি কী অনন্য (Unique); একই কী দুবার দিলে শেষের মানটি থাকে।
    2. কী অবশ্যই অপরিবর্তনযোগ্য (Immutable) ধরনের হবে, যেমন str, int, float, tuple।
    3. লিস্ট বা ডিকশনারি কী হতে পারে না (TypeError)।
    4. কী কেস-সেনসিটিভ: "Name" ও "name" আলাদা কী।
    5. কী দিয়ে খুব দ্রুত মান খোঁজা যায় (হ্যাশিং)।
    6. পাইথন ৩.৭ থেকে কী-গুলো যোগ করার ক্রম অনুযায়ী থাকে।
    d = {1: "এক", "two": 2, (3, 4): "টাপল"}   # int, str, tuple কী হতে পারে
    d["two"] = 22                              # একই কী আবার দিলে মান বদলায়
    print(d)
    # d[[5]] = "x"   → TypeError: লিস্ট কী হতে পারে না
    

    নমুনা আউটপুট:

    {1: 'এক', 'two': 22, (3, 4): 'টাপল'}
    
  6. ৪.৪-সং-৬বই: পৃষ্ঠা ১১৬

    ৬.ফাইল কত প্রকার ও কী কী?

    উত্তর

    কী-ওয়ার্ড: টেক্সট ফাইল (.txt, .csv, .py), বাইনারি ফাইল (.jpg, .mp3, .exe)

    পাইথনে ফাইল প্রধানত দুই প্রকার:

    ধরনবৈশিষ্ট্যউদাহরণমোড
    টেক্সট ফাইলমানুষের পড়ার উপযোগী অক্ষরে (ASCII/Unicode) ডাটা থাকে; প্রতিটি লাইন শেষে নিউলাইন.txt, .csv, .py, .html"r", "w", "a"
    বাইনারি ফাইল০ ও ১ (বাইট) আকারে ডাটা থাকে; সরাসরি পড়া যায় না.jpg, .png, .mp3, .pdf, .exe"rb", "wb", "ab"
  7. ৪.৪-সং-৭বই: পৃষ্ঠা ১১৬

    ৭.input() ফাংশনের সিনট্যাক্স লেখ।

    উত্তর

    কী-ওয়ার্ড: variable = input("prompt"), সবসময় স্ট্রিং, int()/float() রূপান্তর

    input() ফাংশনের সিনট্যাক্স:

    variable = input("প্রম্পট বার্তা")
    

    input() সবসময় স্ট্রিং ফেরত দেয়; সংখ্যা চাইলে int(input()) বা float(input()) লিখতে হয়।

    name = input("তোমার নাম কী? ")
    age = int(input("বয়স: "))      # input() সবসময় স্ট্রিং দেয়, তাই int()
    print(name, "এর বয়স", age)
    

    নমুনা আউটপুট:

    তোমার নাম কী? Rahim
    বয়স: 17
    Rahim এর বয়স 17
    
  8. ৪.৪-সং-৮বই: পৃষ্ঠা ১১৬

    ৮.open() ফাংশনের সিনট্যাক্স লেখ।

    উত্তর

    কী-ওয়ার্ড: file_object = open(filename, mode), মোড r/w/a, encoding

    open() ফাংশনের সিনট্যাক্স:

    file_object = open("filename", "mode", encoding="utf-8")
    
    • filename: ফাইলের নাম বা পাথ
    • mode: "r" (পড়া, ডিফল্ট), "w" (লেখা), "a" (যোগ), "rb"/"wb" (বাইনারি) ইত্যাদি
    • encoding: বাংলা লেখার জন্য "utf-8" দেওয়া ভালো (ঐচ্ছিক)

    উদাহরণ: f = open("students.txt", "a", encoding="utf-8")

  9. ৪.৪-সং-৯বই: পৃষ্ঠা ১১৭

    ৯.read() ফাংশনের সিনট্যাক্স উল্লেখ কর।

    উত্তর

    কী-ওয়ার্ড: file.read(size), readline(), readlines(), "r" মোড

    read() ফাংশনের সিনট্যাক্স:

    file_object.read()        # পুরো ফাইল পড়ে
    file_object.read(size)    # প্রথম size সংখ্যক অক্ষর পড়ে
    

    সম্পর্কিত: readline() একটি লাইন এবং readlines() সব লাইন লিস্ট আকারে পড়ে।

    f = open("note.txt", "w")
    f.write("Line 1\nLine 2\nLine 3\n")
    f.close()
    
    f = open("note.txt", "r")
    print(f.read(6))          # প্রথম ৬টি অক্ষর
    f.seek(0)                 # আবার শুরুতে
    print(f.readline().strip())   # একটি লাইন
    print(f.readlines())          # বাকি লাইনগুলো লিস্টে
    f.close()
    

    নমুনা আউটপুট:

    Line 1
    Line 1
    ['Line 2\n', 'Line 3\n']
    
  10. ৪.৪-সং-১০বই: পৃষ্ঠা ১১৭

    ১০.ফাইল অপারেশন ব্যাখ্যা কর।

    উত্তর

    কী-ওয়ার্ড: ফাইলে ডাটা সংরক্ষণ ও পুনরুদ্ধার, open–read/write–close, স্থায়ী সংরক্ষণ

    প্রোগ্রাম বন্ধ হলে মেমরির ডাটা মুছে যায়; তাই ডাটা স্থায়ীভাবে হার্ডডিস্কে সংরক্ষণ ও পরে আবার ব্যবহারের জন্য ফাইল অপারেশন করা হয়। ফাইল অপারেশনের তিনটি মূল ধাপ:

    1. ফাইল খোলা: open() দিয়ে নির্দিষ্ট মোডে ফাইল খোলা হয়।
    2. পড়া বা লেখা: read() দিয়ে ডাটা পড়া বা write() দিয়ে ডাটা লেখা হয়।
    3. ফাইল বন্ধ করা: close() দিয়ে ফাইল বন্ধ করা হয়, যাতে ডাটা সঠিকভাবে সংরক্ষিত হয়।
    # ১. ফাইল খোলা ও লেখা (write mode)
    f = open("students.txt", "w")
    f.write("Rahim\n")
    f.close()
    
    # ২. শেষে নতুন ডাটা যোগ (append mode)
    f = open("students.txt", "a")
    f.write("Sadia\n")
    f.close()
    
    # ৩. ফাইল পড়া (read mode)
    with open("students.txt", "r") as f:   # with ব্যবহারে স্বয়ংক্রিয়ভাবে close হয়
        print(f.read())
    

    নমুনা আউটপুট:

    Rahim
    Sadia
    

    ফাইল অপারেশনের ধাপ

    ফাইল অপারেশনের ধাপ

  11. ৪.৪-সং-১১বই: পৃষ্ঠা ১১৭

    ১১.close() ফাংশন ব্যবহারের সুবিধাগুলো উল্লেখ কর।

    উত্তর

    কী-ওয়ার্ড: ডাটা সংরক্ষণ নিশ্চিত (flush), রিসোর্স মুক্ত, ফাইল লক এড়ানো, ডাটা নষ্ট রোধ, with স্টেটমেন্ট

    close() ফাংশন ব্যবহারের সুবিধা:

    1. বাফারে থাকা সব ডাটা ফাইলে লেখা নিশ্চিত হয়, ফলে ডাটা হারায় না।
    2. ফাইলের জন্য ব্যবহৃত মেমরি ও সিস্টেম রিসোর্স মুক্ত হয়।
    3. অন্য প্রোগ্রাম বা ব্যবহারকারী ফাইলটি ব্যবহার করতে পারে (ফাইল লক থাকে না)।
    4. একসাথে অনেক ফাইল খোলা থাকার সীমা অতিক্রম হয় না।
    5. ফাইল নষ্ট (Corrupt) হওয়ার ঝুঁকি কমে।

    পরামর্শ: with open(...) as f: ব্যবহার করলে কাজ শেষে ফাইল স্বয়ংক্রিয়ভাবে বন্ধ হয়।

  12. ৪.৪-সং-১২বই: পৃষ্ঠা ১১৭

    ১২.ডিকশনারি বলতে কী বুঝায়?

    উত্তর

    কী-ওয়ার্ড: কী-মান (key: value) জোড়া, { }, অনন্য কী, পরিবর্তনযোগ্য, dict

    ডিকশনারি: পাইথনে কী-মান (key: value) জোড়া আকারে ডাটা সংরক্ষণের পরিবর্তনযোগ্য (Mutable) ডাটা টাইপকে ডিকশনারি বলে। এটি দ্বিতীয় বন্ধনী { } দিয়ে লেখা হয়; প্রতিটি কী অনন্য এবং কী দিয়েই মান খুঁজে পাওয়া যায়।

    student = {"roll": 101, "name": "রহিম", "gpa": 4.75}
    print(student["name"])
    print(len(student))
    

    নমুনা আউটপুট:

    রহিম
    3
    

    এখানে "roll", "name", "gpa" হলো কী এবং 101, "রহিম", 4.75 হলো তাদের মান।

  13. ৪.৪-সং-১৩বই: পৃষ্ঠা ১১৭

    ১৩.পাইথন প্রোগ্রামে ডিকশনারি কেন ব্যবহার করা হয়?

    উত্তর

    কী-ওয়ার্ড: কী দিয়ে দ্রুত খোঁজা, অর্থবহ লেবেল, সম্পর্কিত তথ্য একসাথে, JSON

    পাইথন প্রোগ্রামে ডিকশনারি ব্যবহারের কারণ:

    1. ইনডেক্সের বদলে অর্থবহ কী (যেমন "name") দিয়ে ডাটা খোঁজা যায়, ফলে কোড বোঝা সহজ।
    2. কী দিয়ে মান খোঁজা অত্যন্ত দ্রুত (হ্যাশিং পদ্ধতিতে)।
    3. একটি বস্তুর সম্পর্কিত তথ্য (যেমন শিক্ষার্থীর রোল, নাম, GPA) একসাথে রাখা যায়।
    4. সহজে নতুন তথ্য যোগ, পরিবর্তন ও মুছে ফেলা যায়।
    5. ওয়েব API ও JSON ডাটার কাঠামোর সাথে মিলে যায়।
    6. শব্দ গণনা, ফোনবুক, ডাটাবেজ রেকর্ডের মতো কাজে উপযোগী।
    student = {"roll": 101, "name": "রহিম", "gpa": 4.75}
    print(student["roll"])                 # কী দিয়ে সরাসরি
    print(student.get("gpa"))              # get() দিয়ে
    print(student.get("phone", "নেই"))     # কী না থাকলে বিকল্প মান
    for key, value in student.items():     # লুপ দিয়ে
        print(key, ":", value)
    

    নমুনা আউটপুট:

    101
    4.75
    নেই
    roll : 101
    name : রহিম
    gpa : 4.75
    
  14. ৪.৪-সং-১৪বই: পৃষ্ঠা ১১৭

    ১৪.ডিকশনারির উপাদান অ্যাক্সেসিং পদ্ধতি উল্লেখ কর।

    উত্তর

    কী-ওয়ার্ড: d[key], get(key, default), keys()/values()/items(), for লুপ

    ডিকশনারির উপাদান অ্যাক্সেস করার পদ্ধতি:

    1. বর্গবন্ধনীতে কী: student["roll"] — কী না থাকলে KeyError হয়।
    2. get() মেথড: student.get("gpa") — কী না থাকলে None বা নির্ধারিত বিকল্প মান দেয়।
    3. লুপের মাধ্যমে: for key, value in student.items():
    student = {"roll": 101, "name": "রহিম", "gpa": 4.75}
    print(student["roll"])                 # কী দিয়ে সরাসরি
    print(student.get("gpa"))              # get() দিয়ে
    print(student.get("phone", "নেই"))     # কী না থাকলে বিকল্প মান
    for key, value in student.items():     # লুপ দিয়ে
        print(key, ":", value)
    

    নমুনা আউটপুট:

    101
    4.75
    নেই
    roll : 101
    name : রহিম
    gpa : 4.75
    
  15. ৪.৪-সং-১৫বই: পৃষ্ঠা ১১৭

    ১৫.ডিকশনারির উপাদান আপডেটিং প্রক্রিয়া উদাহরণসহ বর্ণনা কর।

    উত্তর

    কী-ওয়ার্ড: d[key] = নতুন মান, নতুন কী যোগ, update() মেথড

    ডিকশনারির উপাদান আপডেট করার পদ্ধতি:

    1. বিদ্যমান মান পরিবর্তন: dict[key] = new_value — কী আগে থাকলে মান বদলে যায়।
    2. নতুন উপাদান যোগ: একই পদ্ধতিতে নতুন কী দিলে নতুন কী-মান জোড়া যুক্ত হয়।
    3. update() মেথড: একসাথে একাধিক কী-মান পরিবর্তন বা যোগ করা যায়।
    student = {"roll": 101, "name": "রহিম"}
    student["name"] = "রহিম উদ্দিন"          # বিদ্যমান মান পরিবর্তন
    student["gpa"] = 4.75                    # নতুন কী-মান যোগ
    student.update({"roll": 102, "city": "ঢাকা"})   # একসাথে একাধিক
    print(student)
    

    নমুনা আউটপুট:

    {'roll': 102, 'name': 'রহিম উদ্দিন', 'gpa': 4.75, 'city': 'ঢাকা'}
    
  16. ৪.৪-সং-১৬বই: পৃষ্ঠা ১১৮

    ১৬.ফাইল অপারেশন বলতে কী বুঝায়?

    উত্তর

    কী-ওয়ার্ড: ফাইল তৈরি, খোলা, পড়া, লেখা, যোগ, বন্ধ — ডাটা স্থায়ীভাবে সংরক্ষণ

    ফাইল অপারেশন: প্রোগ্রামের মাধ্যমে স্টোরেজে থাকা ফাইল তৈরি করা, খোলা, ডাটা পড়া, লেখা, যোগ করা ও বন্ধ করার প্রক্রিয়াকে ফাইল অপারেশন বলে। এর মাধ্যমে প্রোগ্রাম বন্ধ হওয়ার পরও ডাটা স্থায়ীভাবে সংরক্ষিত থাকে।

    ফাইল অপারেশনের ধাপ

    ফাইল অপারেশনের ধাপ

  17. ৪.৪-সং-১৭বই: পৃষ্ঠা ১১৮

    ১৭.print() ফাংশন এর ব্যবহার লেখ।

    উত্তর

    কী-ওয়ার্ড: আউটপুট প্রদর্শন, একাধিক মান, sep, end, f-string, file প্যারামিটার

    print() ফাংশন স্ক্রিনে (বা ফাইলে) আউটপুট দেখাতে ব্যবহৃত হয়। সিনট্যাক্স: print(value1, value2, ..., sep=" ", end="\n", file=sys.stdout)

    • sep: একাধিক মানের মাঝে কী বসবে (ডিফল্ট ফাঁকা স্থান)
    • end: শেষে কী বসবে (ডিফল্ট নতুন লাইন)
    • file: আউটপুট কোথায় যাবে (যেমন একটি খোলা ফাইল)
    print("Hello", "Python")             # একাধিক মান, ফাঁকা দিয়ে আলাদা
    print("2026", "10", "22", sep="-")   # sep: আলাদা করার চিহ্ন
    print("একই", end=" ")                # end: লাইনের শেষে কী বসবে
    print("লাইনে")
    name, gpa = "রহিম", 4.75
    print(f"{name} এর GPA {gpa}")        # f-string
    

    নমুনা আউটপুট:

    Hello Python
    2026-10-22
    একই লাইনে
    রহিম এর GPA 4.75
    
  18. ৪.৪-সং-১৮বই: পৃষ্ঠা ১১৮

    ১৮.ফাইল কী?

    উত্তর

    কী-ওয়ার্ড: স্টোরেজে নামযুক্ত ডাটার সংগ্রহ, স্থায়ী সংরক্ষণ, নাম ও এক্সটেনশন, টেক্সট ও বাইনারি

    ফাইল: হার্ডডিস্ক বা অন্য স্টোরেজে একটি নির্দিষ্ট নামে সংরক্ষিত সম্পর্কিত ডাটা বা তথ্যের সংগ্রহকে ফাইল বলে। প্রতিটি ফাইলের একটি নাম ও এক্সটেনশন থাকে, যেমন result.txt, photo.jpg। প্রোগ্রাম বন্ধ হলেও ফাইলের ডাটা স্থায়ীভাবে থেকে যায়।

  19. ৪.৪-সং-১৯বই: পৃষ্ঠা ১১৮

    ১৯.ফাইল থেকে পড়ার জন্য কোন ফাংশন ব্যবহার করা হয়?

    উত্তর

    কী-ওয়ার্ড: read(), readline(), readlines(), "r" মোড

    ফাইল থেকে পড়ার জন্য read() ফাংশন (মেথড) ব্যবহার করা হয়। এছাড়া readline() একটি লাইন এবং readlines() সব লাইন লিস্ট আকারে পড়ে। ফাইলটি অবশ্যই "r" (Read) মোডে খুলতে হয়।

    f = open("note.txt", "w")
    f.write("Line 1\nLine 2\nLine 3\n")
    f.close()
    
    f = open("note.txt", "r")
    print(f.read(6))          # প্রথম ৬টি অক্ষর
    f.seek(0)                 # আবার শুরুতে
    print(f.readline().strip())   # একটি লাইন
    print(f.readlines())          # বাকি লাইনগুলো লিস্টে
    f.close()
    

    নমুনা আউটপুট:

    Line 1
    Line 1
    ['Line 2\n', 'Line 3\n']
    

রচনামূলক প্রশ্ন (৪টি)

  1. ৪.৪-র-১বই: পৃষ্ঠা ১১৮

    ১.পাইথনের বেসিক ফাইল অপারেশন বর্ণনা কর।

    উত্তর

    কী-ওয়ার্ড: open(), মোড, read/readline/readlines, write, append, close(), with স্টেটমেন্ট, উদাহরণ

    ভূমিকা: ফাইলে ডাটা স্থায়ীভাবে সংরক্ষণ ও পুনরায় ব্যবহারের জন্য পাইথনে কয়েকটি মৌলিক ফাইল অপারেশন আছে:

    ফাইল অপারেশনের ধাপ

    ১. ফাইল খোলা (Open)

    f = open("students.txt", "w") — নির্দিষ্ট মোডে ফাইল খোলে এবং ফাইল অবজেক্ট দেয়।

    ২. ফাইলে লেখা (Write)

    "w" মোডে f.write("Rahim\n") — আগের বিষয়বস্তু মুছে নতুন করে লেখে।

    ৩. ফাইলে যোগ করা (Append)

    "a" মোডে f.write("Sadia\n") — আগের লেখার শেষে যোগ করে।

    ৪. ফাইল পড়া (Read)

    "r" মোডে f.read(), f.readline() বা f.readlines()।

    ৫. ফাইল বন্ধ করা (Close)

    f.close() — ডাটা সংরক্ষণ নিশ্চিত করে ও রিসোর্স মুক্ত করে। with ব্যবহার করলে স্বয়ংক্রিয়ভাবে বন্ধ হয়।

    সম্পূর্ণ উদাহরণ:

    # ১. ফাইল খোলা ও লেখা (write mode)
    f = open("students.txt", "w")
    f.write("Rahim\n")
    f.close()
    
    # ২. শেষে নতুন ডাটা যোগ (append mode)
    f = open("students.txt", "a")
    f.write("Sadia\n")
    f.close()
    
    # ৩. ফাইল পড়া (read mode)
    with open("students.txt", "r") as f:   # with ব্যবহারে স্বয়ংক্রিয়ভাবে close হয়
        print(f.read())
    

    নমুনা আউটপুট:

    Rahim
    Sadia
    
  2. ৪.৪-র-২বই: পৃষ্ঠা ১১৯

    ২.বিভিন্ন ধরনের ফাইল মোড বর্ণনা কর।

    উত্তর

    কী-ওয়ার্ড: r, w, a, x, r+, w+, a+, b (বাইনারি), t (টেক্সট)

    ভূমিকা: open() ফাংশনে ফাইল কোন উদ্দেশ্যে খোলা হবে তা "মোড" দিয়ে নির্ধারণ করা হয়। বিভিন্ন ফাইল মোড:

    মোডনামকাজফাইল না থাকলে
    "r"Readশুধু পড়া (ডিফল্ট)FileNotFoundError
    "w"Writeলেখা; আগের লেখা মুছে নতুন করে লেখেনতুন ফাইল তৈরি করে
    "a"Appendআগের লেখার শেষে নতুন লেখা যোগনতুন ফাইল তৈরি করে
    "x"Exclusive createনতুন ফাইল তৈরি; ফাইল থাকলে ত্রুটিনতুন ফাইল তৈরি করে
    "r+"Read + Writeপড়া ও লেখা দুটোইFileNotFoundError
    "w+"Write + Readলেখা ও পড়া; আগের লেখা মুছে যায়নতুন ফাইল তৈরি করে
    "a+"Append + Readশেষে যোগ ও পড়ানতুন ফাইল তৈরি করে
    "b"Binaryঅন্য মোডের সাথে বাইনারি ফাইলের জন্য, যেমন "rb", "wb"—
    "t"Textটেক্সট ফাইল (ডিফল্ট), যেমন "rt"—

    উদাহরণ: open("photo.jpg", "rb") — ছবির ফাইল বাইনারি মোডে পড়া; open("log.txt", "a") — লগ ফাইলের শেষে নতুন লেখা যোগ।

    # ১. ফাইল খোলা ও লেখা (write mode)
    f = open("students.txt", "w")
    f.write("Rahim\n")
    f.close()
    
    # ২. শেষে নতুন ডাটা যোগ (append mode)
    f = open("students.txt", "a")
    f.write("Sadia\n")
    f.close()
    
    # ৩. ফাইল পড়া (read mode)
    with open("students.txt", "r") as f:   # with ব্যবহারে স্বয়ংক্রিয়ভাবে close হয়
        print(f.read())
    

    নমুনা আউটপুট:

    Rahim
    Sadia
    
  3. ৪.৪-র-৩বই: পৃষ্ঠা ১২০

    ৩.বিভিন্ন ধরনের ফাইল মেথড বর্ণনা কর।

    উত্তর

    কী-ওয়ার্ড: read, readline, readlines, write, writelines, seek, tell, flush, close

    ভূমিকা: ফাইল অবজেক্টের উপর ব্যবহৃত মেথডগুলোকে ফাইল মেথড বলে। প্রধান ফাইল মেথডসমূহ:

    মেথডকাজউদাহরণ
    read(size)পুরো ফাইল বা নির্দিষ্ট সংখ্যক অক্ষর পড়েf.read()
    readline()একটি লাইন পড়েf.readline()
    readlines()সব লাইন পড়ে লিস্ট আকারে দেয়f.readlines()
    write(str)স্ট্রিং লেখে; লেখা অক্ষরের সংখ্যা ফেরত দেয়f.write("Hi")
    writelines(list)স্ট্রিংয়ের লিস্ট একসাথে লেখেf.writelines(["a\n", "b\n"])
    seek(pos)ফাইল পয়েন্টার নির্দিষ্ট অবস্থানে নেয়f.seek(0)
    tell()ফাইল পয়েন্টারের বর্তমান অবস্থান দেয়f.tell()
    flush()বাফারের ডাটা সাথে সাথে ফাইলে লেখেf.flush()
    close()ফাইল বন্ধ করেf.close()
    f = open("note.txt", "w")
    f.write("Line 1\nLine 2\nLine 3\n")
    f.close()
    
    f = open("note.txt", "r")
    print(f.read(6))          # প্রথম ৬টি অক্ষর
    f.seek(0)                 # আবার শুরুতে
    print(f.readline().strip())   # একটি লাইন
    print(f.readlines())          # বাকি লাইনগুলো লিস্টে
    f.close()
    

    নমুনা আউটপুট:

    Line 1
    Line 1
    ['Line 2\n', 'Line 3\n']
    
  4. ৪.৪-র-৪বই: পৃষ্ঠা ১২০

    ৪.একটি ফাইলে ডাটা স্টোর করার প্রোগ্রাম লেখ।

    উত্তর

    কী-ওয়ার্ড: with open("w"), লুপে input(), write() দিয়ে সংরক্ষণ, আবার "r" মোডে পড়ে প্রদর্শন

    নিচের প্রোগ্রামটি কয়েকজন শিক্ষার্থীর নাম ও নম্বর ইনপুট নিয়ে result.txt ফাইলে সংরক্ষণ করে, তারপর ফাইল থেকে পড়ে দেখায়:

    n = int(input("কতজন শিক্ষার্থী? "))
    with open("result.txt", "w") as f:
        for i in range(n):
            name = input("নাম: ")
            marks = input("নম্বর: ")
            f.write(name + "," + marks + "\n")
    print("ফাইলে সংরক্ষিত হয়েছে। ফাইলের বিষয়বস্তু:")
    with open("result.txt", "r") as f:
        for line in f:
            name, marks = line.strip().split(",")
            print(name, "→", marks)
    

    নমুনা আউটপুট:

    কতজন শিক্ষার্থী? 2
    নাম: Rahim
    নম্বর: 85
    নাম: Sadia
    নম্বর: 92
    ফাইলে সংরক্ষিত হয়েছে। ফাইলের বিষয়বস্তু:
    Rahim → 85
    Sadia → 92
    

    ব্যাখ্যা: "w" মোডে ফাইল খুলে প্রতিটি শিক্ষার্থীর তথ্য "নাম,নম্বর" আকারে আলাদা লাইনে লেখা হয়। এরপর "r" মোডে খুলে প্রতিটি লাইন split(",") দিয়ে ভাগ করে দেখানো হয়। with ব্যবহারের ফলে ফাইল স্বয়ংক্রিয়ভাবে বন্ধ হয়।