Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python का उपयोग करके CSV फ़ाइल पढ़ना और लिखना

CSV (कॉमा सेपरेटेड वैल्यूज़) फॉर्मेट स्प्रेडशीट्स द्वारा उपयोग किया जाने वाला एक सामान्य डेटा फॉर्मेट है। Python की स्टैंडर्ड लाइब्रेरी में csv मॉड्यूल CSV फ़ाइलों पर रीड/राइट ऑपरेशन करने के लिए क्लासेज और मेथड्स प्रस्तुत करता है।

writer()

csv मॉड्यूल में यह फ़ंक्शन एक राइटर ऑब्जेक्ट लौटाता है जो डेटा को डिलीमिटेड स्ट्रिंग में कन्वर्ट करता है और फ़ाइल ऑब्जेक्ट में स्टोर करता है। फ़ंक्शन को राइट परमिशन वाले फ़ाइल ऑब्जेक्ट की आवश्यकता होती है। फ़ाइल में लिखी गई प्रत्येक पंक्ति एक न्यूलाइन कैरेक्टर जारी करती है। लाइन्स के बीच अतिरिक्त स्पेस को रोकने के लिए, newline पैरामीटर को '' पर सेट किया जाता है।

राइटर क्लास में निम्न मेथड्स हैं:

writerow()

यह फ़ंक्शन एक इटरेबल (लिस्ट, टपल या स्ट्रिंग) में आइटम्स को लिखता है, उन्हें कॉमा कैरेक्टर से अलग करके।

writerows()

यह फ़ंक्शन इटरेबल्स की एक लिस्ट को पैरामीटर के रूप में लेता है और प्रत्येक आइटम को फ़ाइल में कॉमा सेपरेटेड लाइन के रूप में लिखता है।

निम्न उदाहरण writer() फ़ंक्शन के उपयोग को दर्शाता है। पहले एक फ़ाइल को 'w' मोड में खोला जाता है। इस फ़ाइल का उपयोग राइटर ऑब्जेक्ट प्राप्त करने के लिए किया जाता है। टपल्स की लिस्ट में प्रत्येक टपल को फिर writerow() मेथड का उपयोग करके फ़ाइल में लिखा जाता है।

>>> import csv
>>> persons = [('Lata', 22, 45), ('Anil', 21, 56), ('John', 20, 60)]
>>> csvfile = open('persons.csv', 'w', newline='')
>>> obj = csv.writer(csvfile)
>>> for person in persons:
...     obj.writerow(person)
>>> csvfile.close()

यह करंट डायरेक्टरी में 'persons.csv' फ़ाइल बनाएगा। इसमें निम्न डेटा दिखेगा:

Lata,22,45
Anil,21,56
John,20,60

लिस्ट पर इटरेट करके प्रत्येक पंक्ति को अलग-अलग लिखने के बजाय, हम writerows() मेथड का उपयोग कर सकते हैं।

>>> csvfile = open('persons.csv', 'w', newline='')
>>> obj = csv.writer(csvfile)
>>> obj.writerows(persons)
>>> obj.close()

reader()

यह फ़ंक्शन एक रीडर ऑब्जेक्ट लौटाता है जो CSV फ़ाइल में लाइन्स का इटरेटर लौटाता है। नियमित फॉर लूप का उपयोग करके, फ़ाइल में सभी लाइन्स निम्न उदाहरण में प्रदर्शित होती हैं:

>>> csvfile = open('persons.csv', 'r', newline='')
>>> obj = csv.reader(csvfile)
>>> for row in obj:
...     print(row)
['Lata', '22', '45']
['Anil', '21', '56']
['John', '20', '60']

चूंकि रीडर ऑब्जेक्ट एक इटरेटर है, बिल्ट-इन next() फ़ंक्शन भी CSV फ़ाइल में सभी लाइन्स प्रदर्शित करने के लिए उपयोगी है।

>>> csvfile = open('persons.csv', 'r', newline='')
>>> obj = csv.reader(csvfile)
>>> while True:
...     try:
...         row = next(obj)
...         print(row)
...     except StopIteration:
...         break

csv मॉड्यूल एक dialect क्लास भी डिफाइन करता है। डायलेक्ट CSV प्रोटोकॉल को लागू करने के लिए उपयोग किए जाने वाले मानकों का सेट है। उपलब्ध डायलेक्ट्स की सूची list_dialects() फ़ंक्शन द्वारा प्राप्त की जा सकती है।

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

DictWriter()

यह फ़ंक्शन एक DictWriter ऑब्जेक्ट लौटाता है। यह राइटर ऑब्जेक्ट के समान है, लेकिन पंक्तियाँ डिक्शनरी ऑब्जेक्ट से मैप की जाती हैं। फ़ंक्शन को राइट परमिशन वाले फ़ाइल ऑब्जेक्ट और डिक्शनरी में उपयोग की जाने वाली कीज़ की सूची की आवश्यकता होती है जिसे fieldnames पैरामीटर के रूप में पास किया जाता है। इसका उपयोग फ़ाइल में पहली पंक्ति को हेडर के रूप में लिखने के लिए किया जाता है।

writeheader()

यह मेथड डिक्शनरी में कीज़ की सूची को पहली पंक्ति में कॉमा सेपरेटेड लाइन के रूप में लिखता है।

निम्न उदाहरण में, डिक्शनरी आइटम्स की एक लिस्ट डिफाइन की गई है। लिस्ट में प्रत्येक आइटम एक डिक्शनरी है। writerows() मेथड का उपयोग करके, उन्हें फ़ाइल में कॉमा सेपरेटेड तरीके से लिखा जाता है।

>>> persons = [{'name': 'Lata', 'age': 22, 'marks': 45},
...           {'name': 'Anil', 'age': 21, 'marks': 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.close()

फ़ाइल में निम्न सामग्री दिखेगी:

name,age,marks
Lata,22,45
Anil,21,56
John,20,60

DictReader()

यह फ़ंक्शन अंतर्निहित CSV फ़ाइल से एक DictReader ऑब्जेक्ट लौटाता है। रीडर ऑब्जेक्ट के मामले की तरह, यह भी एक इटरेटर है, जिसका उपयोग करके फ़ाइल की सामग्री प्राप्त की जाती है।

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

क्लास fieldnames एट्रिब्यूट प्रदान करती है, जो फ़ाइल के हेडर के रूप में उपयोग की जाने वाली डिक्शनरी कीज़ लौटाती है।

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

DictReader ऑब्जेक्ट पर लूप का उपयोग करके व्यक्तिगत डिक्शनरी ऑब्जेक्ट्स प्राप्त करें।

>>> for row in obj:
...     print(row)

इसके परिणामस्वरूप निम्न आउटपुट होता है:

OrderedDict([('name', 'Lata'), ('age', '22'), ('marks', '45')])
OrderedDict([('name', 'Anil'), ('age', '21'), ('marks', '56')])
OrderedDict([('name', 'John'), ('age', '20'), ('marks', '60')])

OrderedDict ऑब्जेक्ट को सामान्य डिक्शनरी में कन्वर्ट करने के लिए, हमें पहले collections मॉड्यूल से OrderedDict इम्पोर्ट करना होगा।

>>> from collections import OrderedDict
>>> r = OrderedDict([('name', 'Lata'), ('age', '22'), ('marks', '45')])
>>> dict(r)
{'name': 'Lata', 'age': '22', 'marks': '45'}

इस लेख में csv मॉड्यूल की विशेषताओं को समझाया गया है।

  1. Python में xlsxwriter मॉड्यूल का उपयोग करके एक्सेल फ़ाइल बनाना और लिखना Python में xlsxwriter मॉड्यूल का उपयोग करके एक्सेल फ़ाइल बनाना और लिखना

    Python की लाइब्रेरी की व्यापक उपलब्धता इसे Microsoft Excel के साथ इंटरैक्ट करने में सक्षम बनाती है, जो एक बहुत व्यापक रूप से उपयोग किया जाने वाला डेटा प्रोसेसिंग टूल है। इस लेख में हम देखेंगे कि हम xlsxwriter नामक मॉड्यूल का उपयोग करके एक्सेल फ़ाइल कैसे बना सकते हैं और उसमें लिख सकते हैं। यह मौजूदा

  1. पायथन का उपयोग करके वेबसाइट ब्लॉकर पायथन का उपयोग करके वेबसाइट ब्लॉकर

    यदि आप एक बड़ी IT कंपनी में काम कर रहे हैं तो आप देख सकते हैं कि उनकी कुछ वेबसाइटें अवरुद्ध हैं, विशेष रूप से सोशल नेटवर्किंग साइट्स जैसे फेसबुक, यूट्यूब, इंस्टाग्राम आदि। कुछ वेबसाइटों को ब्लॉक करने के लिए थर्ड-पार्टी एप्लिकेशन का उपयोग करने के बजाय, हम अपना खुद का कस्टम एप्लिकेशन विकसित कर सकते ह

  1. पायथन openpyxl मॉड्यूल का उपयोग करके एक्सेल फ़ाइल पढ़ना और लिखना पायथन openpyxl मॉड्यूल का उपयोग करके एक्सेल फ़ाइल पढ़ना और लिखना

    पायथन एक्सेल फ़ाइलों के संचालन के लिए openpyxl मॉड्यूल प्रदान करता है। एक्सेल फ़ाइलें कैसे बनाएं, कैसे लिखें, पढ़ें आदि को इस मॉड्यूल द्वारा लागू किया जा सकता है। openpyxl मॉड्यूल स्थापित करने के लिए, हम कमांड प्रॉम्प्ट में यह कमांड लिख सकते हैं pip install openpyxl यदि हम शीट शीर्षक नाम देना चाहते