পাইথন CSV মডিউল CSV ফাইল হ্যান্ডল করতে ব্যবহৃত হয়। CSV ফাইল অনেক তথ্য ধারণ করতে পারে, এবং CSV মডিউল পাইথনকে reader() এবং writer() ফাংশন দিয়ে CSV ফাইল পড়তে এবং লিখতে দেয়।
ডেটা পড়া, লেখা ও ম্যানিপুলেট করা প্রোগ্রামিংয়ের অপরিহার্য অংশ। তাই পাইথনে ফাইল হ্যান্ডলিং জানা দরকার যাতে এক্সটার্নাল সোর্স থেকে ডেটা পড়া-লেখা যায়।
উদাহরণস্বরূপ, আপনি একটি আইসক্রিম দোকানের মালিক যিনি কাস্টমার ট্রেন্ড জানতে চান। পাইথন ব্যবহার করে ইউজার অর্ডারের ডেটা বিশ্লেষণ করে জানতে পারেন কোন ফ্লেভার জনপ্রিয়, কত টাকা খরচ হচ্ছে, ইত্যাদি।
এখানেই কাজ করে পাইথন CSV মডিউল। CSV ফাইল বড় পরিমাণ ডেটা সংরক্ষণ করে, এবং CSV মডিউল পাইথনে সেগুলো পার্স করতে দেয়। এই টিউটোরিয়ালে CSV ফাইল পড়া ও লেখার পদ্ধতি শিখব।
CSV রিফ্রেশার
ডেটা নিয়ে কাজ করার সময় কমা দিয়ে আলাদা করা একটি লিস্ট থাকে। উদাহরণস্বরূপ, আইসক্রিম অর্ডারের একটি লিস্ট যেটার ভ্যালুগুলো কমা দিয়ে সেপারেট করা। এই ডেটা স্ট্রাকচারকে CSV ডেটা বা Comma-Separated Values বলে।
ট্র্যাডিশনাল টেক্সট ফাইল ডেটা সংরক্ষণে কাজে আসে, কিন্তু স্ট্রাকচার্ড ডেটা সংরক্ষণ করতে পারে না। CSV ফাইলগুলোর আড়ালে টেবিল ফরম্যাটে স্ট্রাকচার্ড ডেটা সংরক্ষণ করা যায়, যাকে কোডে রেফারেন্স করা যায়—স্প্রেডশিট বা ডাটাবেসের মতো। উদাহরণস্বরূপ, একটি CSV ফাইলে আইসক্রিম ফ্লেভার বা সাপ্লায়ার ইনফো থাকতে পারে।
CSV ফাইলের উদাহরণ:
suppliers.csv Hendersons Creamery, 123 Main Street, Cream Peterson Chocolate, 129 Second Street, Chocolate Sprinkles
এই ফাইলে তিনটি আইটেম: সাপ্লায়ারের নাম, ঠিকানা, এবং কোন প্রোডাক্ট সাপ্লাই করে। দুটি লাইন ডেটা: Hendersons Creamery এবং Peterson Chocolate-এর জন্য।
81% পার্টিসিপেন্ট বুটক্যাম্পের পর টেক জব প্রস펙্টে আরও আত্মবিশ্বাসী মনে করেছেন। আজই বুটক্যাম্প খুঁজুন।
গড় বুটক্যাম্প গ্র্যাজুয়েট ক্যারিয়ার ট্রানজিশনে ৬ মাস কম সময় ব্যয় করে।
CSV ফাইলে ডেটা স্ট্রাকচার্ড থাকায় পাইথন প্রোগ্রাম দিয়ে পার্স করে প্রতিটি কলাম বা রো থেকে ডেটা বের করা যায়।
পাইথন CSV মডিউল
পাইথন CSV মডিউল CSV ডেটা পার্স করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, সাপ্লায়ার ইনফোর CSV ফাইল থাকলে CSV মডিউল দিয়ে ডেটা রিট্রিভ ও কাজ করা যায়।
CSV পাইথনের বিল্ট-ইন মডিউল, কিন্তু ব্যবহার করার আগে csv ইম্পোর্ট করতে হয়:
import csv
CSV ফাইল পড়া
CSV ফাইলের ডেটা নিয়ে কাজ করার আগে ফাইল পড়তে হয়। CSV মডিউলের reader() মেথড CSV ফাইল প্রোগ্রামে পড়তে সাহায্য করে। reader ফাংশন ফাইলের প্রতিটি লাইন নেয় এবং কলামের লিস্টে রূপান্তর করে।
ধরুন, suppliers.csv ফাইলে আইসক্রিম সাপ্লায়ার লিস্ট আছে যা পড়তে চাই। ফাইলের কন্টেন্ট:
Hendersons Creamery, 123 Main Street, Cream Peterson Chocolate, 129 Second Street, Chocolate Sprinkles HW Smith and Co, 17 Boston Avenue, Ice Cream Cones
নিচের কোড দিয়ে ডেটা রিট্রিভ করুন:
import csv with open("suppliers.csv", "r") as f: contents = csv.reader(f) for c in contents: print(c) ব্রেকডাউন: প্রথম লাইনে csv মডিউল ইম্পোর্ট। পরের লাইনে with স্টেটমেন্ট দিয়ে ফাইল ওপেন করে f ভ্যালু অ্যাসাইন। contents = csv.reader(f) দিয়ে ফাইল কন্টেন্ট পড়া। শেষে for লুপ দিয়ে প্রতিটি লাইন প্রিন্ট।
আউটপুট:
['Hendersons Creamery', ' 123 Main Street', ' Cream'] ['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles'] ['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']
প্রোগ্রাম প্রতিটি লাইনকে অ্যারে আকারে রূপান্তর করেছে। এখন এই ডেটা ম্যানিপুলেট করা যায়।
ধরুন, আগামী সপ্তাহের অর্ডার ক্যান্সেল নোটিশ পাঠাতে হবে। সাপ্লায়ারদের ঠিকানা বের করতে:
... for c in contents: print(c[1])
আউটপুট:
123 Main Street 129 Second Street 17 Boston Avenue
কোডে for লুপ contents ভেরিয়েবলের প্রতিটি লাইন ঘুরে, ইনডেক্স 1 (ঠিকানা) প্রিন্ট করে।
এখন ফাইল থেকে ডেটা অ্যারে-এ পড়তে চাইলে (সাধারণ ফাংশন যাতে পরবর্তীতে ব্যবহার করা যায়):
import csv suppliers = [] with open("suppliers.csv", "r") as f: contents = csv.reader(f) for c in contents: suppliers.append(c) print(suppliers) আউটপুট:
[['Hendersons Creamery', ' 123 Main Street', ' Cream'], ['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles'], ['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']]
এক্সপ্লেনেশন: প্রোগ্রাম suppliers.csv ওপেন করে, পড়ে, প্রতিটি রেকর্ড suppliers অ্যারেতে অ্যাপেন্ড করে, শেষে প্রিন্ট করে।
CSV ফাইলে লেখা
CSV মডিউলে writer() মেথড আছে CSV ফাইলে ডেটা লিখতে। writer() ফাংশন একটি অবজেক্ট তৈরি করে যেটা দিয়ে ফাইলে লিখা যায়। ডেটা লিখতে writerow() মেথড ব্যবহার করা হয়।
ধরুন, একটি প্রোগ্রাম লিখলেন যা প্রতিটি সাপ্লায়ার রেকর্ডে একটি নতুন ভ্যালু যোগ করে (প্রাইমারি সাপ্লায়ার কিনা)। CSV ফাইলে লিখতে:
import csv suppliers = [] with open("suppliers.csv", "r") as f: contents = csv.reader(f) for c in contents: c.append("Yes") suppliers.append(c) with open("new_suppliers.csv", "w") as f: write_to_file = csv.writer(f) for s in suppliers: write_to_file.writerow(s) কোডের শুরু পূর্বের উদাহরণের মতো: suppliers.csv পড়ে suppliers অ্যারেতে নেয়া। পার্থক্য: পড়ার সময় প্রতিটি আইটেমে Yes ভ্যালু অ্যাড করা হয়েছে (প্রাইমারি সাপ্লায়ার বোঝাতে)।
তারপর new_suppliers.csv নামে নতুন ফাইল ওপেন করে suppliers কন্টেন্ট লিখা। writer() দিয়ে ফাইল প্রস্তুত। for লুপ দিয়ে প্রতিটি সাপ্লায়ার writerow() দিয়ে লিখা।
আউটপুট:
new_suppliers.csv Hendersons Creamery, 123 Main Street, Cream,Yes Peterson Chocolate, 129 Second Street, Chocolate Sprinkles,Yes HW Smith and Co, 17 Boston Avenue, Ice Cream Cones,Yes
যদি পুরো suppliers ভেরিয়েবল একসাথে লিখতে চান, তবে লুপ ছাড়া writerows() মেথড ব্যবহার করুন:
... write_to_file = csv.writer(f) write_to_file.writerows(suppliers) ...
আউটপুট একই থাকবে।
CSV ফাইল কোটিং (Quoting)
উপরের উদাহরণে কোড suppliers অ্যারে নতুন ফাইলে যেনেরূপে লিখেছে।
কিন্তু কখনও প্রতিটি ভ্যালু কোটেশন মার্কে লিখতে হয়। উদাহরণস্বরূপ, সাপ্লায়ার নামে কমা থাকলে CSV ফাইল ম্যালফর্মড হয়ে যাবে।
CSV মডিউলে চারটি quoting ফাংশন আছে যেগুলো csv.writer() মেথডে আর্গুমেন্ট হিসেবে পাস করা হয়:
csv.QUOTE_ALL: প্রতিটি স্ট্রিং কোটেশন ماركে রাখেcsv.QUOTE_NONNUMERIC: সব স্ট্রিং ফিল্ড কোট করেcsv.QUOTE_MINIMAL: স্পেশাল ক্যারেক্টারযুক্ত ফিল্ড কোট করেcsv.QUOTE_NONE: কোনো ভ্যালু কোট করে না
সকল ভ্যালু কোট করতে চাইলে:
... write_to_file = csv.writer(f, quoting=csv.QUOTE_ALL) ...
প্রোগ্রাম রান করলে new_suppliers.csv ফাইলে:
"Hendersons Creamery"," 123 Main Street"," Cream","Yes" "Peterson Chocolate"," 129 Second Street"," Chocolate Sprinkles","Yes" "HW Smith and Co"," 17 Boston Avenue"," Ice Cream Cones","Yes"
উপসংহার
ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা পাইথন প্রোগ্রাম থেকে জেনারেট হওয়া ডেটা রিট্রিভ ও সংরক্ষণ করতে দেয়। উদাহরণস্বরূপ, আইসক্রিম ফ্লেভার ও প্রাইসের মেনু পাইথন প্রোগ্রামে ব্যবহার করতে চাইলে ফাইলে সংরক্ষণ করুন।
এই টিউটোরিয়ালে পাইথন CSV মডিউলের বেসিক এবং reader(), writer() অবজেক্ট ব্যবহার শিখলাম।
এখন আপনি পাইথনে CSV ফাইল পড়া ও লেখার মতো প্রফেশনালরা কাজ করতে পারবেন!
দুনিয়ার কোম্পানিগুলো পাইথন জানা লোকেদের নিয়োগ করছে। আজই ফ্রি Career Karma অ্যাপ ডাউনলোড করুন পাইথন শিখে টেক ক্যারিয়ার শুরু করার জন্য!