কম্পিউটার

পাইথন ব্যবহার করে CSV ফাইল পড়া এবং লেখা


CSV (কমা দ্বারা পৃথক করা মানগুলির জন্য দাঁড়িয়েছে) বিন্যাস হল একটি সাধারণভাবে ব্যবহৃত ডেটা বিন্যাস যা স্প্রেডশীট দ্বারা ব্যবহৃত হয়। পাইথনের স্ট্যান্ডার্ড লাইব্রেরির csv মডিউলটি CSV ফাইলগুলিতে রিড/রাইট অপারেশন সঞ্চালনের জন্য ক্লাস এবং পদ্ধতিগুলি উপস্থাপন করে৷

লেখক()

csv মডিউলের এই ফাংশনটি একটি লেখক অবজেক্ট প্রদান করে যা ডেটাকে একটি সীমাবদ্ধ স্ট্রিংয়ে রূপান্তর করে এবং একটি ফাইল অবজেক্টে সঞ্চয় করে। ফাংশনের জন্য একটি প্যারামিটার হিসাবে লেখার অনুমতি সহ একটি ফাইল অবজেক্ট প্রয়োজন। ফাইলে লেখা প্রতিটি সারি একটি নতুন লাইন অক্ষর প্রকাশ করে। লাইনের মধ্যে অতিরিক্ত স্থান রোধ করতে, নতুন লাইনের প্যারামিটারটি '' এ সেট করা হয়েছে।

লেখক শ্রেণীর নিম্নলিখিত পদ্ধতি আছে

লেখক()

এই ফাংশনটি একটি পুনরাবৃত্তিযোগ্য (তালিকা, টুপল বা স্ট্রিং) আইটেমগুলিকে কমা অক্ষর দ্বারা আলাদা করে লিখতে পারে৷

লেখক()

এই ফাংশনটি পরামিতি হিসাবে পুনরাবৃত্তিযোগ্যগুলির একটি তালিকা নেয় এবং প্রতিটি আইটেমকে ফাইলে আইটেমগুলির একটি কমা বিভক্ত লাইন হিসাবে লেখে৷

নিম্নলিখিত উদাহরণ লিখতে() ফাংশনের ব্যবহার দেখায়। প্রথমে একটি ফাইল 'w' মোডে খোলা হয়। এই ফাইলটি লেখক অবজেক্ট পেতে ব্যবহার করা হয়। tuples তালিকার প্রতিটি tuple তারপর writerow() পদ্ধতি ব্যবহার করে ফাইলে লেখা হয়।

>>> csv আমদানি করুন>>> persons=[('Lata',22,45),('Anil',21,56),('John',20,60)]>>> csvfile=open ('persons.csv','w', newline=')>>> obj=csv.writer(csvfile)>>> ব্যক্তিদের জন্য:obj.writerow(person)>>> csvfile.close() 

এটি বর্তমান ডিরেক্টরিতে 'persons.csv' ফাইল তৈরি করবে। এটি নিম্নলিখিত ডেটা দেখাবে৷

লতা,22,45অনীল,21,56জন,20,60

প্রতিটি সারি পৃথকভাবে লিখতে তালিকার উপর পুনরাবৃত্তি করার পরিবর্তে, আমরা writerows() পদ্ধতি ব্যবহার করতে পারি।

>>> csvfile =open('persons.csv','w', newline=')>>> obj =csv.writer(csvfile)>>> obj.writerows(persons)>>> obj. বন্ধ()

পড়ুন()

এই ফাংশনটি একটি রিডার অবজেক্ট রিটার্ন করে যা csv ফাইলে লাইনের একটি পুনরাবৃত্তিকারী প্রদান করে। রেগুলার ফর লুপ ব্যবহার করে, ফাইলের সমস্ত লাইন নিম্নলিখিত উদাহরণে প্রদর্শিত হয়।

>>> csvfile=open('persons.csv','r', newline=')>>> obj=csv.reader(csvfile)>>> অবজে:প্রিন্ট (সারি)['তে সারির জন্য লতা', '22', '45']['অনিল', '21', '56']['জন', '20', '60']

যেহেতু রিডার অবজেক্ট একটি ইটারেটর, তাই বিল্ট-ইন নেক্সট() ফাংশনটিও csv ফাইলে সমস্ত লাইন প্রদর্শনের জন্য উপযোগী।

>>> csvfile =open('persons.csv','r', newline=')>>> obj =csv.reader(csvfile)>>> যখন True:try:row=next(obj) প্রিন্ট (সারি) StopIteration ছাড়া:বিরতি

csv মডিউল একটি উপভাষা শ্রেণীকেও সংজ্ঞায়িত করে। উপভাষা হল CSV প্রোটোকল বাস্তবায়নের জন্য ব্যবহৃত মানগুলির সেট। উপলব্ধ উপভাষার তালিকা list_dialects() ফাংশন দ্বারা প্রাপ্ত করা যেতে পারে।

>>> csv.list_dialects()['excel', 'excel-tab', 'unix']

DictWriter()

এই ফাংশনটি একটি DictWriter অবজেক্ট প্রদান করে। এটি লেখক বস্তুর অনুরূপ, কিন্তু সারিগুলি অভিধান বস্তুতে ম্যাপ করা হয়েছে। ফাংশনের জন্য লেখার অনুমতি সহ একটি ফাইল অবজেক্ট এবং ফিল্ডনেম প্যারামিটার হিসাবে অভিধানে ব্যবহৃত কীগুলির একটি তালিকা প্রয়োজন। এটি শিরোনাম হিসাবে ফাইলের প্রথম লাইন লিখতে ব্যবহৃত হয়।

রাইটারহেডার()

এই পদ্ধতিটি ফাইলের প্রথম লাইন হিসাবে একটি কমা বিভক্ত লাইন হিসাবে অভিধানে কীগুলির তালিকা লিখে।

নিম্নলিখিত উদাহরণে, অভিধান আইটেমগুলির একটি তালিকা সংজ্ঞায়িত করা হয়েছে। তালিকার প্রতিটি আইটেম একটি অভিধান. writrows() পদ্ধতি ব্যবহার করে, সেগুলিকে কমা দিয়ে আলাদা করে ফাইলে লেখা হয়।

>>> ব্যক্তি=[{'নাম':'লতা', 'বয়স':22, 'চিহ্ন':45}, {'নাম':'অনিল', 'বয়স':21, 'চিহ্ন':56}, {'name':'John', 'age':20, 'marks':60}]>>> csvfile=open('persons.csv','w', newline=')>>> fields=list(persons[0].keys())>>> obj=csv.DictWriter(csvfile, fieldnames=fields)>>> obj.writeheader()>>> obj.writerows(persons)>>> csvfile। বন্ধ()

ফাইলটি নিম্নলিখিত বিষয়বস্তু দেখায়৷

নাম,বয়স,চিহ্নলতা,22,45অনিল,21,56জন,20,60

ডিক্টরিডার()

এই ফাংশনটি অন্তর্নিহিত CSV ফাইল থেকে একটি DictReader অবজেক্ট ফেরত দেয়। রিডার অবজেক্টের ক্ষেত্রে, এটিও একটি পুনরাবৃত্তিকারী, যা ব্যবহার করে ফাইলের বিষয়বস্তু পুনরুদ্ধার করা হয়।

>>> csvfile =open('persons.csv','r', newline='')>>> obj =csv.DictReader(csvfile)

ক্লাস ফিল্ডের নাম বৈশিষ্ট্য প্রদান করে, ফাইলের শিরোনাম হিসাবে ব্যবহৃত অভিধান কীগুলি ফেরত দেয়।

>>> obj.fieldnames['name', 'age', 'marks']

পৃথক অভিধান অবজেক্ট আনতে DictReader অবজেক্টের উপর লুপ ব্যবহার করুন।

>>> অবজেজে সারির জন্য:প্রিন্ট (সারি)

এর ফলে নিম্নলিখিত আউটপুট হয়।

 OrderedDict([('name', 'Lata'), ('age', '22'), ('marks', '45')])orderedDict([('name', 'Anil'), ('বয়স', '21'), ('চিহ্ন', '56')])অর্ডারডডিক্ট([('নাম', 'জন'), ('বয়স', '20'), ('চিহ্ন', ' 60')])

OrderedDict বস্তুটিকে সাধারণ অভিধানে রূপান্তর করতে, আমাদের প্রথমে সংগ্রহ মডিউল থেকে OrderedDict আমদানি করতে হবে।

>>> সংগ্রহ থেকে আমদানি করুন OrderedDict>>> r=OrderedDict([('নাম', 'লতা'), ('বয়স', '22'), ('চিহ্ন', '45')])>>> dict(r){'name':'Lata', 'age':'22', 'marks':'45'}

এই নিবন্ধে csv মডিউলের বৈশিষ্ট্যগুলি ব্যাখ্যা করা হয়েছে৷


  1. পাইথনে openpyxl মডিউল ব্যবহার করে এক্সেল ফাইল পড়া এবং লেখা

  2. পাইথনে xlsxwriter মডিউল ব্যবহার করে এক্সেল ফাইল তৈরি করুন এবং লিখুন

  3. Python ব্যবহার করে ওয়েবসাইট ব্লকার

  4. পাইথন openpyxl মডিউল ব্যবহার করে একটি এক্সেল ফাইল পড়ুন এবং লিখুন