CSV ফাইল বলতে Comma Separated Values ফাইলকে বোঝায়। এটি একটি প্লেইন টেক্সট ফাইল যেতে ডেটা ভ্যালুগুলো কমা (comma) দিয়ে আলাদা করা থাকে এবং এভাবে কমার সাহায্যে টেবুলার ডেটা (tabular data) প্লেইন টেক্সট আকারে রিপ্রেজেন্ট করা হয়। CSV ফাইলের এক্সটেনশন .csv থাকে।
CSV ফাইল কেমন দেখায়:
Sr.No,Name,City,Age 1,Rahul,Kolkata,21 2,Karan,Amritsar,23 3,Priya,Bangalore,20
CSV ফাইল তৈরি করতে আপনি উপরের ফরম্যাটে নোটপ্যাডে লিখে .csv এক্সটেনশন দিয়ে সংরক্ষণ করতে পারেন।
পাইথনে CSV ফাইল পড়া
আপনার লোকাল সিস্টেমে সংরক্ষিত CSV ফাইল পাইথনের সাহায্যে পড়া যায়।
পাইথনে csv মডিউল ইম্পোর্ট করতে হবে। তারপর ফাইলটি রিড মোডে (read mode) ওপেন করতে হবে কারণ আমাদের ফাইল থেকে ডেটা পড়তে হবে। csv.reader() ফাংশন CSV ফাইল থেকে ডেটা পড়তে ব্যবহৃত হয়। csv.reader() একটি ইটেরেবল রিডার অবজেক্ট (iterable reader object) রিটার্ন করে। রিটার্ন করা ইটেরেবল রিডার অবজেক্টের ওপর ইটারেট করতে হবে CSV ফাইলের কন্টেন্ট প্রসেস করতে।
ইমপ্লিমেন্টেশন
আমাদের লোকাল সিস্টেমে "ttp.csv" নামে একটি CSV ফাইল থাকাকল্পনা করা যাক। ফাইলের কন্টেন্ট উপরের উদাহরণে দেখানো হয়েছে। আমাদের এই ফাইলের কন্টেন্ট পড়ে লাইন বাই লাইন প্রিন্ট করতে হবে।
উদাহরণ
import csv
with open('ttp.csv', 'r') as file:
filecontent = csv.reader(file)
for row in filecontent:
print(row)
নোট: নিশ্চিত করুন CSV ফাইল এবং পাইথন প্রোগ্রাম সিস্টেমে একই লোকেশনে আছে, অর্থাৎ একই ফোল্ডারে।
আউটপুট
['Sr.No', 'Name', 'City', 'Age'] ['1', 'Rahul', 'Kolkata', '21'] ['2', 'Karan', 'Amritsar', '23'] ['3', 'Priya', 'Bangalore', '20']
লাইন বাই লাইন ব্যাখ্যা
import csv − পাইথনে csv মডিউল ইম্পোর্ট করতে হয় এই মডিউলের ফাংশনগুলো ব্যবহার করে ফাইল পড়তে।
open()ব্যবহার করে ফাইল ওপেন করুন।open()দুটি প্যারামিটার নেয়, ফাইলের নাম এবং যে মোডে ওপেন করতে চান। এখানে মোড 'r' কারণ আমাদের ফাইল পড়তে হবে।csv.reader()ব্যবহার করে ফাইলের কন্টেন্ট পড়ুন। এটি একটি ইটেরেবল রিডার অবজেক্ট রিটার্ন করে যা একটি ভেরিয়েবলে রিটার্ন হয়।ফাইল কন্টেন্ট প্রিন্ট করার জন্য filecontent-এ ইটারেট করুন।
CSV ফাইল এবং এটি পড়া পাইথন প্রোগ্রাম অবশ্যই একই লোকেশনে থাকতে হবে।
CSV ফাইল এবং পাইথন প্রোগ্রাম একই লোকেশনে বা একই ফোল্ডারে আপনার লোকাল সিস্টেমে থাকতে হবে। যদি ফাইল অন্য লোকেশনে থাকে, তবে এক্সেপশন উত্থাপন করে এবং নিচের আউটপুট দেবে।
Traceback (most recent call last):
with open('ttp.csv','r')as file:
FileNotFoundError: [Errno 2] No such file or directory: 'ttp.csv'
কাস্টম ডিলিমিটার (Custom delimiter) দিয়ে CSV ফাইল পড়া
CSV ফাইলে কমা (comma) একমাত্র ডিলিমিটার নয়। অন্যান্য ডিলিমিটার হলো : , ; , | ইত্যাদি। যদি কমার বদলে অন্য ডিলিমিটার ব্যবহার করা হয়, তবে কোড অনুযায়ী মডিফাই করতে হবে।
ইমপ্লিমেন্টেশন
উপরের CSV ফাইলে যদি ডিলিমিটার ':' ব্যবহার করা হয় কমার বদলে, তবে কোড নিচের মত হবে:
উদাহরণ
import csv
with open('ttp.csv', 'r') as file:
filecontent = csv.reader(file, delimiter=':')
for row in filecontent:
print(row)
আউটপুট
['Sr', 'No', 'Name', 'City', 'Age'] ['1', 'Rahul', 'Kolkata', '21'] ['2', 'Karan', 'Amritsar', '23'] ['3', 'Priya', 'Bangalore', '20']
কোডে একমাত্র মডিফিকেশন হলো CSV ফাইলে ব্যবহৃত ডিলিমিটার csv.reader()-এ নির্দিষ্ট করা। যদি ডিলিমিটার '|' হয়, তবে কোডে ডিলিমিটার হিসেবে এটি নির্দিষ্ট করতে হবে।
যদি উপরের কোডে উপরের ফাইলের জন্য ':' ডিলিমিটার নির্দিষ্ট না করা হয়, তবে এটি নিচের ভুল আউটপুট দেবে।
['Sr:No:Name:City:Age'] ['1:Rahul:Kolkata:21'] ['2:Karan:Amritsar:23'] ['3:Priya:Bangalore:20']
উপরের আউটপুটে পুরো রো একটি সিঙ্গেল আইটেম হিসেবে বিবেচিত হয়েছে।