একটি CSV ফাইলের অর্থ হল কমা বিভক্ত মান ফাইল। এটি একটি প্লেইন টেক্সট ফাইল যেখানে ডেটা মানগুলি কমা দ্বারা আলাদা করা হয় এবং তাই কমার সাহায্যে প্লেইন টেক্সট আকারে একটি ট্যাবুলার ডেটা উপস্থাপন করে। একটি CSV ফাইলে .csv এক্সটেনশন আছে।
এখানে একটি CSV ফাইল দেখতে কেমন হয় −
Sr.No,Name,City,Age1,Rahul,Kolkata,212,karan,Amritsar,233,Priya,Bangalore,20
একটি CSV ফাইল তৈরি করতে, আপনি নোটপ্যাডে উপরের ফর্ম্যাটে ফাইলটি লিখতে পারেন এবং .csv এক্সটেনশন দিয়ে সংরক্ষণ করতে পারেন৷
পাইথনে CSV ফাইল পড়ুন
সিস্টেমে আপনার স্থানীয় স্টোরেজে সংরক্ষিত csv ফাইলটি পাইথনের সাহায্যে পড়া যায়।
আমাদের পাইথনে csv মডিউল আমদানি করতে হবে। তারপরে আমাদের ফাইলটি রিড মোডে খুলতে হবে যেহেতু আমাদের ফাইল থেকে ডেটা পড়তে হবে। csv.reader() ফাংশনটি CSV ফাইল থেকে ডেটা পড়ার জন্য ব্যবহার করা হয়। csv.reader() একটি পুনরাবৃত্তিযোগ্য পাঠক বস্তু প্রদান করে। csv ফাইলের বিষয়বস্তু প্রসেস করার জন্য আমাদের রিটার্ন করা রিডার অবজেক্টের উপর পুনরাবৃত্তি করতে হবে।
বাস্তবায়ন
আমাদের স্থানীয় সিস্টেমে "ttp.csv" নামে একটি csv ফাইল সংরক্ষণ করা যাক। ফাইলের বিষয়বস্তু উপরের উদাহরণে প্রদর্শিত হয়। আমাদের এই ফাইলের বিষয়বস্তু পড়তে হবে এবং ফাইল লাইনের বিষয়বস্তু লাইন দ্বারা প্রিন্ট করতে হবে।
উদাহরণ
ফাইল হিসাবে খোলা ('ttp.csv','r') সহ csv আমদানি করুন:filecontent=csv.reader(file) ফাইল সামগ্রীতে সারির জন্য:প্রিন্ট(সারি)
দ্রষ্টব্য: নিশ্চিত করুন যে সিএসভি ফাইল এবং পাইথন প্রোগ্রামটি সিস্টেমে একই অবস্থানে রয়েছে, অর্থাৎ একই ফোল্ডারে৷
আউটপুট
['শ্রেণি সংখ্যা', 'নাম', 'শহর', 'বয়স']['1', 'রাহুল', 'কলকাতা', '21']['2', 'করণ', 'অমৃতসর' ', '23']['3', 'প্রিয়া', 'ব্যাঙ্গালোর', '20']
লাইন দ্বারা ব্যাখ্যা লাইন
-
csv আমদানি করুন৷ − ফাইলটি পড়ার জন্য এই মডিউলে অন্তর্ভুক্ত ফাংশনগুলি ব্যবহার করার জন্য পাইথনে csv মডিউল আমদানি করতে হবে৷
-
open() ব্যবহার করে ফাইলটি খুলুন। open() দুটি প্যারামিটার লাগে, ফাইলের নাম এবং যে মোডে আপনি এটি খুলতে চান। এখানে মোড হল 'r' যেহেতু আমাদের ফাইলটি পড়তে হবে।
-
csv.reader() ব্যবহার করে ফাইলের বিষয়বস্তু পড়ুন। এটি একটি পুনরাবৃত্তিযোগ্য পাঠক অবজেক্ট প্রদান করে যা একটি ভেরিয়েবলে ফিরে আসে।
-
ফাইলের বিষয়বস্তু সারি অনুযায়ী মুদ্রণ করতে ফাইলের বিষয়বস্তুর উপর পুনরাবৃত্তি করুন।
সিএসভি ফাইল এবং পাইথন প্রোগ্রামটি যেটি পড়ছে তা অবশ্যই একই অবস্থানে থাকতে হবে।
আপনার স্থানীয় সিস্টেমে csv ফাইল এবং পাইথন প্রোগ্রাম একই অবস্থানে বা একই ফোল্ডারে থাকা প্রয়োজন। যদি ফাইলটি কিছু ভিন্ন অবস্থানে থাকে তবে এটি একটি ব্যতিক্রম উত্থাপন করে এবং নিম্নলিখিত আউটপুট দেয়৷
ট্রেসব্যাক (সর্বাধিক সাম্প্রতিক কল):ফাইল হিসেবে open('ttp.csv','r') সহ:FileNotFoundError:[Errno 2] এরকম কোনো ফাইল বা ডিরেক্টরি নেই:'ttp.csv'
কাস্টম ডিলিমিটার সহ CSV ফাইল পড়ুন
csv ফাইলগুলিতে কমা ব্যবহার করা একমাত্র বিভাজনকারী নয়। ব্যবহৃত অন্যান্য সীমাবদ্ধতা হল:,; , | ইত্যাদি। যদি কমার পরিবর্তে, অন্য কিছু ডিলিমিটার ব্যবহার করা হয়, আমাদের সেই অনুযায়ী কোড পরিবর্তন করতে হবে।
বাস্তবায়ন
উপরের csv ফাইলে, কমার পরিবর্তে ডিলিমিটার ব্যবহার করা হয়েছে ':'। এইভাবে কোডটি নীচের মত সংশোধন করা হবে −
উদাহরণ
ফাইল হিসাবে খোলা ('ttp.csv','r') সহ csv আমদানি করুন:filecontent=csv.reader(file,delimiter=':') ফাইল সামগ্রীতে সারির জন্য:প্রিন্ট(সারি)
আউটপুট
['শ্রেষ্ঠ', 'না', 'নাম', 'শহর', 'বয়স']['1', 'রাহুল', 'কলকাতা', '21']['2', 'করণ', 'অমৃতসর', '23']['3', 'প্রিয়া', 'ব্যাঙ্গালোর', '20']
কোডের একমাত্র পরিবর্তন হল csv.reader() এ csv ফাইলে ব্যবহৃত ডিলিমিটার উল্লেখ করা। যদি ব্যবহৃত ডিলিমিটারটি '|' হয়, তাহলে এটিকে কোডে বিভেদক হিসেবে উল্লেখ করতে হবে।
যদি নির্দিষ্ট করা না থাকে, ডিফল্টরূপে কোড শুধুমাত্র কমাকে বিভাজন হিসাবে বিবেচনা করবে এবং যেহেতু কমা ফাইলটিতে উপস্থিত নেই, পুরো সারিটিকে একটি একক আইটেম হিসাবে বিবেচনা করা হবে৷
যদি ':' ডেলিমিটার ব্যবহার করে উপরের ফাইলের জন্য উপরের কোডে ডিলিমিটার নির্দিষ্ট করা না থাকে, তাহলে এটি নিম্নোক্ত আউটপুট তৈরি করে যা ভুল।
['Sr:No:Name:City:Age']['1:Rahul:Kolkata:21']['2:Karan:Amritsar:23']['3:Priya:Bangalore:20']প্রে>উপরের আউটপুটের মতো, পুরো সারিটিকে একক আইটেম হিসাবে বিবেচনা করা হয়।