Lesson ১০৬ মিনিট পড়া
ফাইল I/O (File I/O)
ফাইল পড়া এবং লেখা — কারণ আপনার প্রোগ্রাম শেষ হলেও ডেটা থেকে যাওয়া প্রয়োজন
ফাইল খোলা — with স্টেটমেন্ট (Opening Files — The with Statement)
পাইথনে ফাইল পড়ার ব্যাপারটি অনেকটা লাইব্রেরি থেকে বই নেওয়ার মতো: আপনি এটি খোলেন (open), পড়েন (read) এবং কাজ শেষ হলে এটি বন্ধ (close) করে দেন। যদি আপনি ফাইল বন্ধ করতে ভুলে যান, তবে খারাপ কিছু ঘটতে পারে (ডেটা নষ্ট হওয়া, ফাইল লক হয়ে যাওয়া, রিসোর্স লিক)।
এক্ষেত্রে with স্টেটমেন্ট হলো আপনার সেরা বন্ধু — এরর হলেও কাজ শেষে এটি স্বয়ংক্রিয়ভাবে ফাইলটি বন্ধ করে দেয়। সবসময় এটি ব্যবহার করুন।
open() ফাংশন ফাইলের নাম এবং একটি মোড (mode) গ্রহণ করে:
"r"— রিড (ডিফল্ট)। এক্ষেত্রে ফাইলটির অস্তিত্ব থাকতে হবে।"w"— রাইট। এটি নতুন ফাইল তৈরি করে অথবা আগের ডেটাকে ওভাররাইট (মুছে দিয়ে নতুন করে লেখে) করে!"a"— অ্যাপেন্ড বা যুক্ত করা। এটি আগের ডেটা না মুছে একদম শেষে নতুন ডেটা যোগ করে।"x"— এক্সক্লুসিভ ক্রিয়েট। ফাইলটি আগে থেকেই থাকলে এটি কাজ করে না ও ফেল করে।- বাইনারি মোডের জন্য
"b"যোগ করুন:"rb","wb"।
ফাইল লেখা এবং পড়া (Writing & Reading Files)
রিডিং মেথডগুলোর তুলনা (Reading Methods Compared)
ফাইলের ডেটা পড়ার জন্য পাইথনে তিনটি মেথড বা পদ্ধতি রয়েছে:
.read()— পুরো ফাইলটি একটি বড় স্ট্রিং হিসেবে রিটার্ন করে। ছোট ফাইলের জন্য এটি দারুণ কার্যকর।.readline()— যেকোনো একবারে একটি লাইন (one line) রিটার্ন করে। পরের লাইনের জন্য এটিকে বারবার কল করতে হয়।.readlines()— সবগুলো লাইনের একটি লিস্ট রিটার্ন করে। প্রতিটি লাইনে একটি\nবা নিউলাইন ক্যারেক্টার থাকে।- ফাইল অবজেক্টের ওপর ইটারেট করা — বড় ফাইলের জন্য এটি সবচেয়ে ভালো পদ্ধতি। এটি পুরো ফাইল মেমোরিতে লোড না করেই একবারে এক লাইন করে পড়ে।
অ্যাপেন্ড করা এবং readlines() এর ব্যবহার (Appending & Using readlines())
CSV ফাইল নিয়ে কাজ করা (Working with CSV Files)
ডেটা সংরক্ষণের জন্য CSV (Comma-Separated Values) অন্যতম একটি পরিচিত ফাইল ফরম্যাট। পাইথনের নিজস্ব একটি csv মডিউল রয়েছে, তবে সাধারণ কাজের জন্য আপনি কেবল .split() এবং f-স্ট্রিংও ব্যবহার করতে পারেন।
CSV ফাইলের বেসিকস (CSV Basics)
Note: ফাইল নিয়ে কাজ করার সময় সবসময়
with স্টেটমেন্ট ব্যবহার করুন। এটি অনেকটা দায়িত্বশীল কোনো রুমমেটের মতো যে ঘর থেকে বের হওয়ার সময় সবসময় লাইট বন্ধ করে যায় — আপনার কোড মাঝপথে ক্র্যাশ করলেও এর ফলে ফাইলগুলো ঠিকমতো বন্ধ করা হয়।চ্যালেঞ্জ