Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📁 Unit 1 – File Handling  ·  Lesson 08

CSV Files: reader और writer

CSV file क्या है?

CSV (Comma-Separated Values) plain-text file है जिसमें हर line एक record है और values (fields) commas से अलग होती हैं। Excel और Google Sheets जैसी spreadsheets CSV खोलती और save करती हैं, इसलिए table data share करने का यह सबसे आम तरीका है।

RollNameClassMarks
1AshaXII-A91
2RaviXII-B67
3NehaXII-A85
Spreadsheet में खुली result.csv
result.csv (text के रूप में)
Roll,Name,Class,Marks
1,Asha,XII-A,91
2,Ravi,XII-B,67
3,Neha,XII-A,85

csv module

✍️
csv.writer(f)writerow() और writerows() वाला writer object देता है।
📖
csv.reader(f)Iterator देता है; हर row strings की list।
🗂️
csv.DictReader(f)हर row header को keys बनाकर dictionary।
csv module के मुख्य tools

लिखना: writer, writerow, writerows

Python
import csv
rows = [['Roll', 'Name', 'Class', 'Marks'],
        [1, 'Asha', 'XII-A', 91],
        [2, 'Ravi', 'XII-B', 67],
        [3, 'Neha', 'XII-A', 85]]
with open('result.csv', 'w', newline='') as f:
    w = csv.writer(f)
    w.writerow(rows[0])          # header
    w.writerows(rows[1:])        # many rows at once
with open('result.csv') as f:
    print(f.read(), end='')      # it is just text
Roll,Name,Class,Marks 1,Asha,XII-A,91 2,Ravi,XII-B,67 3,Neha,XII-A,85

newline='' क्यों?

CSV file लिखने के लिए खोलते समय newline='' दें। नहीं तो Windows पर हर row के बाद ख़ाली line आती है क्योंकि Python और csv module दोनों line endings जोड़ते हैं।

csv.reader से पढ़ना

Python
import csv
with open('result.csv', newline='') as f:
    r = csv.reader(f)
    for row in r:
        print(row)             # every row is a LIST of strings
['Roll', 'Name', 'Class', 'Marks'] ['1', 'Asha', 'XII-A', '91'] ['2', 'Ravi', 'XII-B', '67'] ['3', 'Neha', 'XII-A', '85']

Row append करना

Python
import csv
def add_student():
    with open('result.csv', 'a', newline='') as f:
        csv.writer(f).writerow([4, 'Kabir', 'XII-B', 74])
add_student()
with open('result.csv', newline='') as f:
    data = list(csv.reader(f))
print('Rows (with header):', len(data), '| last:', data[-1])
Rows (with header): 5 | last: ['4', 'Kabir', 'XII-B', '74']

Search, count और filter

Python
import csv
def toppers(limit):
    with open('result.csv', newline='') as f:
        r = csv.reader(f)
        next(r)                      # skip the header row
        count = 0
        for roll, name, cls, marks in r:
            if int(marks) > limit:   # convert text to number
                print(name, marks)
                count += 1
    print('Count:', count)
toppers(80)
Asha 91 Neha 85 Count: 2
Python
import csv
def search(name):
    with open('result.csv', newline='') as f:
        for row in csv.reader(f):
            if row[1].lower() == name.lower():
                return row
    return None
print(search('neha'))
print(search('Zoya'))
['3', 'Neha', 'XII-A', '85'] None
Python
import csv
# copy only XII-B students into a new CSV
with open('result.csv', newline='') as src, open('xiib.csv', 'w', newline='') as dst:
    r = csv.reader(src)
    w = csv.writer(dst)
    w.writerow(next(r))                 # copy header
    for row in r:
        if row[2] == 'XII-B':
            w.writerow(row)
with open('xiib.csv') as f:
    print(f.read(), end='')
Roll,Name,Class,Marks 2,Ravi,XII-B,67 4,Kabir,XII-B,74

DictReader

Python
import csv
def class_average(section):
    total = n = 0
    with open('result.csv', newline='') as f:
        for row in csv.DictReader(f):          # each row is a dict
            if row['Class'] == section:
                total += int(row['Marks'])
                n += 1
    return round(total / n, 2) if n else 0
print('XII-A average:', class_average('XII-A'))
print('XII-B average:', class_average('XII-B'))
XII-A average: 88.0 XII-B average: 70.5

दूसरे delimiters

Python
import csv
with open('items.csv', 'w', newline='') as f:
    w = csv.writer(f, delimiter=';')            # semicolon-separated
    w.writerow(['Item', 'Price'])
    w.writerow(['Pen, blue', 10])              # comma inside value is safe
with open('items.csv') as f:
    print(f.read(), end='')
with open('items.csv', newline='') as f:
    print(list(csv.reader(f, delimiter=';')))
Item;Price Pen, blue;10 [['Item', 'Price'], ['Pen, blue', '10']]

csv module delimiter वाली value के चारों ओर अपने आप quotes लगाता है, इसलिए "Pen, blue" एक ही field रहता है।

सारांश और practice

  • CSV = comma से अलग text table; newline='' से खोलें।
  • csv.writer → writerow / writerows से लिखें; csv.reader से पढ़ें (rows strings की lists)।
  • next(reader) से header छोड़ें; गणित से पहले numbers बदलें।
✅ Board-style question

ADD() लिखें जो [EmpID, Name, Mobile] लेकर record.csv में जोड़े, और COUNTR() जो file के records (header छोड़कर) गिने।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

writerow() और writerows() में क्या फ़र्क है?
writerow(list) एक row लिखता है। writerows(list_of_lists) एक call में कई rows लिखता है।
CSV file से पढ़े numbers strings क्यों होते हैं?
CSV text format है, इसलिए csv.reader हर value हमेशा string के रूप में देता है। Calculate करने से पहले int() या float() से बदलें।
newline='' क्या करता है?
यह Windows पर rows के बीच extra ख़ाली line आने से रोकता है, क्योंकि csv module अपनी line endings ख़ुद लिखता है।
← Class 12 Computer Science
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

अगला topicStack: List से PUSH, POP आपकी प्रगति: 8 / 26 (31%) · Lesson 9 / 26 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें