Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
CSV फाइलों का पार्सिंग
What is CSV?
CSV का अर्थ 'Comma Separated Values' है। CSV फॉर्मेट डेटाबेस और स्प्रेडशीट्स के लिए सबसे आम इम्पोर्ट और एक्सपोर्ट फॉर्मेट है। एक CSV फाइल एक साधारण टेक्स्ट फाइल है जो डेटा की एक सूची होती है। वे ज्यादातर डेटा को सीमांकित करने के लिए कॉमा (,) कैरेक्टर का उपयोग करते हैं, लेकिन कभी-कभी अन्य कैरेक्टर्स जैसे कि सेमीकोलन या टैब का उपयोग भी करते हैं।
CSV module in Python
हालांकि Python में CSV फाइलों या किसी अन्य साधारण टेक्स्ट फाइल के साथ काम करने के लिए बिल्ट-इन open() फ़ंक्शन है, एक समर्पित csv मॉड्यूल भी है जो CSV फॉर्मेट में डेटा को पढ़ने और लिखने के लिए क्लासेस को लागू करता है, जिससे CSV फाइलों के साथ काम करना बहुत आसान हो जाता है।
CSV module important functions
How do you use csv module?
पहले अपने पायथन प्रोग्राम में csv मॉड्यूल को इम्पोर्ट करें।
writer और reader फ़ंक्शंस आपको CSV फाइलों में डेटा को एडिट, मॉडिफाई, और ट्रांसफॉर्म करने की अनुमति देते हैं।
How to Read a CSV File :-
CSV फाइलों से डेटा पढ़ने के लिए हम reader फ़ंक्शन का उपयोग करते हैं जो एक reader ऑब्जेक्ट जनरेट करता है।
For example:
यहां, हम पहले CSV फाइल को READ मोड में खोलते हैं और फाइल ऑब्जेक्ट का नाम csvfile रखते हैं। हम फ़ाइल खोलने के लिए कॉन्टेक्स्ट मैनेजर का उपयोग करते हैं ताकि हमें फ़ाइल बंद करने के बारे में चिंता न करनी पड़े। csv.reader फ़ंक्शन फ़ाइल ऑब्जेक्ट को इनपुट के रूप में लेता है और एक iterable ऑब्जेक्ट लौटाता है। हम iterable ऑब्जेक्ट को csvreader के रूप में सहेजते हैं।
जैसा कि हम जानते हैं, csvreader एक iterable ऑब्जेक्ट है और इसलिए हम इसे फॉर लूप का उपयोग करके इटरेट कर सकते हैं:
Example 1:
उपरोक्त कोड CSV फाइल से पढ़े गए सभी पंक्तियों को प्रिंट करेगा। कृपया ध्यान दें कि जब फाइल पहले से मौजूद होती है तो हम इसे 'r' मोड के साथ खोलते हैं।
What's next?
cvreader एक iterable ऑब्जेक्ट है। इसलिए, .next() मेथड वर्तमान पंक्ति लौटाता है और इटरेटर्स को अगली पंक्ति तक बढ़ाता है।
Example 2:
उदाहरण 1 में, आप सभी पंक्तियों को हेडर सहित कंसोल पर प्रिंट होते हुए देखेंगे। उदाहरण 2 में, .next() मेथड फील्ड्स ऑब्जेक्ट में हेडर पढ़ता है और इटरेटर्स को अगली पंक्ति तक बढ़ाता है और इसलिए हेडर को छोड़कर सभी पंक्तियाँ प्रिंट होती हैं।
How to write in a CSV File-
CSV फाइल में लिखने के लिए, CSV मॉड्यूल csv.writer फंक्शन प्रदान करता है। डेटा लिखने के लिए, हम पहले CSV फाइल को WRITE मोड('w') में खोलते हैं। फाइल ऑब्जेक्ट का नाम csvfile रखा गया है। हम csv.writer ऑब्जेक्ट को csvwriter के रूप में सहेजते हैं।
Example:
उपरोक्त उदाहरण में, writerow() फ़ंक्शन एक एकल पंक्ति लिखेगा जो फील्ड्स ऑब्जेक्ट है जबकि writerows() मेथड ऊपर परिभाषित पंक्तियों की पूरी सूची CSV फाइल में लिखेगा।
अब आइए एक कदम आगे बढ़ें। एक CSV फाइल की सामग्री को पढ़ें और उसे दूसरी CSV फाइल में लिखें।
Example:
यहां, हम 'newfilename.csv' को 'W' मोड में f2 के रूप में और 'mycsvfile.csv' को 'r' मोड में f1 के रूप में खोल रहे हैं। हम csv मॉड्यूल की .next(), .reader(),.writer(), .writerow() फंक्शन का उपयोग कर रहे हैं। .next() का उपयोग करके, हम reader पॉइंटर को आगे बढ़ा रहे हैं और csvwriter.writerow() का उपयोग करके हम आने वाली पंक्ति को एक बार में लिख रहे हैं।
DictReader और DictWriter क्लासेस in Python
नीचे दो महत्वपूर्ण क्लासेस हैं जो पाइथन में CSV फाइलों को पढ़ने और लिखने के लिए उपयोग की जाती हैं।
csv.Dictwriter क्लास
csv.DictReader क्लास
DictReader और DictWriter पाइथन में CSV में पढ़ने और लिखने के लिए उपलब्ध क्लासेस हैं। हालांकि वे reader और writer फ़ंक्शंस के समान हैं, ये क्लासेस CSV फाइलों को पढ़ने और लिखने के लिए dictionary ऑब्जेक्ट्स का उपयोग करती हैं।
DictReader:
यह एक ऑब्जेक्ट बनाता है जो पढ़ी गई जानकारी को एक dictionary में मैप करता है जिसकी कुंजियाँ fieldnames पैरामीटर द्वारा दी जाती हैं। यह पैरामीटर वैकल्पिक है, लेकिन यदि फाइल में निर्दिष्ट नहीं है, तो पहली पंक्ति का डेटा dictionary की कुंजियाँ बन जाता है।
DictWriter:
csv.DictWriter क्लास एक सामान्य लेखक की तरह काम करता है लेकिन पाइथन की dictionaries को CSV पंक्तियों में मैप करता है। fieldnames पैरामीटर कुंजियों का एक अनुक्रम है जो इस क्रम को पहचानती है जिसमें writerow() मेथड को CSV फाइल में लिखते समय dictionary में वैल्यूज़ पास की जाती हैं। क्लास को csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', args, *kwds) के रूप में परिभाषित किया गया है।
Exercise
इस व्यायाम में, आप CSV डेटा के साथ काम करेंगे। आपका कार्य एक ऐसा पायथन कार्यक्रम बनाना है जो CSV फाइल से डेटा पढ़ता है और उसे दूसरी CSV फाइल में लिखता है, यह सुनिश्चित करते हुए कि केवल वे पंक्तियां जिसमें पहले कॉलम का मान 50 से अधिक है, आउटपुट फाइल में शामिल हैं।
import csv
# Open the input CSV file
with open('inputfile.csv', mode='r') as infile:
reader = csv.reader(infile)
# Open the output CSV file
with open('outputfile.csv', mode='w') as outfile:
writer = csv.writer(outfile)
# Write header
header = next(reader)
writer.writerow(header)
# Write rows where the value in the first column is greater than 50
for row in reader:
if int(row[0]) > 50: # Assuming the first column contains numeric values
writer.writerow(row)
import csv
# Open the input CSV file
with open('inputfile.csv', mode='r') as infile:
reader = csv.reader(infile)
# Open the output CSV file
with open('outputfile.csv', mode='w') as outfile:
writer = csv.writer(outfile)
# Write header
header = next(reader)
writer.writerow(header)
# Write rows where the value in the first column is greater than 50
for row in reader:
if int(row[0]) > 50: # Assuming the first column contains numeric values
writer.writerow(row)
Due to the limitations of this IDE, this solution cannot be tested here, as it requires access to external files. However, you should expect that a new file named `outputfile.csv` will be created, and it will contain the same rows as the input file, except only the rows where the first column contains a value greater than 50.
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!