DEV Community

Cover image for পাইথন ফাইল হ্যান্ডলিং: ফাইল নিয়ে কাজ করা
Shafi Rayhan
Shafi Rayhan

Posted on

1 1 1 1 1

পাইথন ফাইল হ্যান্ডলিং: ফাইল নিয়ে কাজ করা

ভূমিকা

পাইথন শেখার জার্নিতে আরেকটা দারুণ ধাপে এসে পড়েছি! আজ আমরা ফাইল হ্যান্ডলিং নিয়ে কথা বলব। এর মানে হলো ফাইল খোলা, পড়া, লেখা এবং সেভ করা। এই পোস্টে আপনি শিখবেন:

  • ফাইল খোলা, পড়া, লেখা এবং বন্ধ করা।
  • csv মডিউল দিয়ে CSV ফাইল নিয়ে কাজ (সহজ পরিচয়)।
  • ফাইল হ্যান্ডলিং-এ এরর এবং এক্সেপশন।
  • একটা নোট স্টোর করার প্রজেক্ট।

ফাইল হ্যান্ডলিং শিখলে আপনি তথ্য সেভ করে পরে ব্যবহার করতে পারবেন। চলুন শুরু করি!


ফাইল হ্যান্ডলিং কী?

ফাইল হ্যান্ডলিং মানে কম্পিউটারে ফাইল নিয়ে কাজ করা। পাইথনে এটা খুব সহজ। আমরা টেক্সট ফাইল (.txt) দিয়ে শুরু করব।

ফাইল খোলা এবং বন্ধ করা

open() ফাংশন দিয়ে ফাইল খোলা হয়। মোড বলে দেয় কী করতে চাই:

  • "r": পড়ার জন্য (read)।
  • "w": লেখার জন্য (write, আগের তথ্য মুছে যায়)।
  • "a": যোগ করার জন্য (append, আগের তথ্য থাকে)।

উদাহরণ:

file = open("myfile.txt", "r")  # ফাইল খোলা
file.close()                    # ফাইল বন্ধ
Enter fullscreen mode Exit fullscreen mode

সহজ উপায়: with স্টেটমেন্ট ব্যবহার করলে ফাইল নিজে থেকে বন্ধ হয়:

with open("myfile.txt", "r") as file:
    print("ফাইল খোলা আছে!")
# এখানে ফাইল বন্ধ হয়ে যায়
Enter fullscreen mode Exit fullscreen mode

ফাইল পড়া

ফাইল থেকে তথ্য পড়তে কয়েকটা উপায় আছে:

  1. সব পড়া:
   with open("myfile.txt", "r") as file:
       content = file.read()
       print(content)
Enter fullscreen mode Exit fullscreen mode
  1. লাইন ধরে পড়া:
   with open("myfile.txt", "r") as file:
       for line in file:
           print(line.strip())
Enter fullscreen mode Exit fullscreen mode

ফাইলে লেখা

"w" বা "a" মোডে লিখতে পারেন:

with open("myfile.txt", "w") as file:
    file.write("আমি পাইথন শিখছি!\n")
Enter fullscreen mode Exit fullscreen mode
  • "w": নতুন করে লেখে।
  • "a": শেষে যোগ করে।

CSV ফাইল নিয়ে কাজ

CSV (Comma-Separated Values) ফাইল ডেটা স্টোর করার জনপ্রিয় ফরম্যাট। পাইথনের csv মডিউল দিয়ে এটা সহজ।

CSV পড়া

ধরুন, data.csv ফাইলে এটা আছে:

নাম,বয়স
রাহিম,20
রিয়া,15
Enter fullscreen mode Exit fullscreen mode

কোড:

import csv

with open("data.csv", "r") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)
Enter fullscreen mode Exit fullscreen mode

আউটপুট:

['নাম', 'বয়স']
['রাহিম', '20']
['রিয়া', '15']
Enter fullscreen mode Exit fullscreen mode

CSV লেখা

import csv

with open("data.csv", "w", newline="") as file:
    writer = csv.writer(file)
    writer.writerow(["নাম", "বয়স"])
    writer.writerow(["সোহান", "22"])
Enter fullscreen mode Exit fullscreen mode
  • newline="": লাইনের মধ্যে অতিরিক্ত ফাঁকা এড়ায়।

কেন ব্যবহার? টেবিলের মতো ডেটা সেভ করতে।


ফাইল হ্যান্ডলিং-এ এরর এবং এক্সেপশন

ফাইল নিয়ে কাজ করতে গেলে সমস্যা হতে পারে। যেমন:

  • ফাইল না থাকলে।
  • অনুমতি না থাকলে।

এরর হ্যান্ডলিং

try-except দিয়ে এরর ধরা যায়:

try:
    with open("wrongfile.txt", "r") as file:
        print(file.read())
except FileNotFoundError:
    print("ফাইল পাওয়া যায়নি!")
Enter fullscreen mode Exit fullscreen mode
  • FileNotFoundError: ফাইল না থাকলে এই এরর আসে।

কেন দরকার? প্রোগ্রাম যেন ক্র্যাশ না করে।


প্রজেক্ট: নোট স্টোর এবং রিট্রিভ প্রোগ্রাম

চলুন একটা প্রোগ্রাম বানাই যেটা নোট সেভ করবে এবং দেখাবে।

ধাপগুলো:

  1. নতুন ফাইল বানান, নাম দিন notes.py
  2. এই কোড লিখুন:
   while True:
       print("\nনোট মেনু:")
       print("1. নোট যোগ করুন")
       print("2. নোট দেখুন")
       print("3. বেরিয়ে যান")
       choice = input("আপনার পছন্দ (1-3): ")

       if choice == "1":
           note = input("আপনার নোট লিখুন: ")
           with open("mynotes.txt", "a") as file:
               file.write(note + "\n")
           print("নোট সেভ হয়েছে।")

       elif choice == "2":
           try:
               with open("mynotes.txt", "r") as file:
                   notes = file.read()
                   if notes:
                       print("\nআপনার নোট:\n", notes)
                   else:
                       print("কোনো নোট নেই।")
           except FileNotFoundError:
               print("কোনো নোট পাওয়া যায়নি।")

       elif choice == "3":
           print("বাই বাই!")
           break

       else:
           print("ভুল পছন্দ, আবার চেষ্টা করুন।")
Enter fullscreen mode Exit fullscreen mode
  1. টার্মিনালে চালান:
   python notes.py
Enter fullscreen mode Exit fullscreen mode
  1. আউটপুট দেখুন:
   নোট মেনু:
   1. নোট যোগ করুন
   2. নোট দেখুন
   3. বেরিয়ে যান
   আপনার পছন্দ (1-3): 1
   আপনার নোট লিখুন: আজ পাইথন শিখছি
   নোট সেভ হয়েছে।
Enter fullscreen mode Exit fullscreen mode

কোড ব্যাখ্যা:

  • "a": নতুন নোট শেষে যোগ করে।
  • "r": সব নোট পড়ে।
  • try-except: ফাইল না থাকলে এরর এড়ায়।
  • \n: নতুন লাইনে নোট যোগ করে।

এই প্রজেক্টে ফাইল হ্যান্ডলিং-এর শক্তি বোঝা যায়।


হোমওয়ার্ক: লাইন, শব্দ এবং অক্ষর গণনা

আপনার কাজ হলো একটা প্রোগ্রাম লেখা যেটা টেক্সট ফাইলে লাইন, শব্দ এবং অক্ষর গণনা করবে।

ধাপগুলো:

  1. ফাইল বানান, নাম দিন file_counter.py
  2. এই কোড লিখুন:
   try:
       with open("mynotes.txt", "r") as file:
           lines = file.readlines()
           line_count = len(lines)
           word_count = 0
           char_count = 0

           for line in lines:
               words = line.split()
               word_count += len(words)
               char_count += len(line)

           print(f"লাইন সংখ্যা: {line_count}")
           print(f"শব্দ সংখ্যা: {word_count}")
           print(f"অক্ষর সংখ্যা: {char_count}")
   except FileNotFoundError:
       print("ফাইল পাওয়া যায়নি!")
Enter fullscreen mode Exit fullscreen mode
  1. প্রথমে mynotes.txt ফাইলে কিছু নোট লিখে সেভ করুন (প্রজেক্ট থেকে)।
  2. চালান:
   python file_counter.py
Enter fullscreen mode Exit fullscreen mode
  1. উদাহরণ (ধরুন mynotes.txt-এ আছে: "আজ পাইথন শিখছি\nমজা লাগছে"):
   লাইন সংখ্যা: 2
   শব্দ সংখ্যা: 5
   অক্ষর সংখ্যা: 19
Enter fullscreen mode Exit fullscreen mode

কোড ব্যাখ্যা:

  • readlines(): সব লাইন লিস্টে নেয়।
  • split(): শব্দে ভাগ করে।
  • len(): গণনা করে।
  • char_count: স্পেস এবং \n সহ গণনা করে।

উপসংহার

আজ আমরা শিখলাম:

  • ফাইল খোলা, পড়া, লেখা এবং বন্ধ করা।
  • CSV ফাইল নিয়ে সহজ কাজ।
  • এরর হ্যান্ডলিং।
  • নোট সেভ করার প্রোগ্রাম।

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

প্রশ্ন:

  1. ফাইল হ্যান্ডলিং কি বোঝা সহজ লেগেছে?
  2. নোট প্রোগ্রামে কি কিছু যোগ করতে চান?
  3. CSV ফাইল নিয়ে কি আরও শিখতে চান?

Top comments (0)

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay