Python CSV Files
In this page:
import csv
with open("file.csv", newline="") as file:
for row in csv.reader(file):
# row is a list
csv Module
CSV (Comma-Separated Values) tabular data के लिए एक plain-text format है, और Python का built-in csv module उन tricky edge cases (quoted fields के अंदर commas, escaped quotes) को संभालता है जो वास्तविक दुनिया की CSV files के लिए ',' पर manually split करने को अविश्वसनीय बनाते हैं।
उदाहरण: The csv Module
import csv
with open("data.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["name", "age"])
writer.writerow(["Alex, Jr.", 30]) # comma inside the value is handled correctly
print("CSV module handles commas inside quoted fields")
CSV Files पढ़ना
csv.reader किसी खुली file को लपेटता है और हर row को string values की एक list के रूप में देता है, quoted fields को अपने आप सही तरह से संभालते हुए -- आप आमतौर पर file को एक बार में एक row process करने के लिए सीधे reader object पर loop करते हैं।
उदाहरण: Reading CSV Files
import csv
with open("data.csv", "w", newline="") as f:
csv.writer(f).writerow(["Alex", "30"])
with open("data.csv", "r", newline="") as f:
for row in csv.reader(f): # each row comes back as a list of strings
print(row)
CSV Files लिखना
csv.writer किसी खुली file (write mode में खुली) को लपेटता है और उसका .writerow() method commas या special characters वाले fields को आपके लिए सही तरह से quote कर देता है, ताकि आपको खुद कुछ भी manually escape न करना पड़े।
उदाहरण: Writing CSV Files
import csv
with open("data.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["name", "age"]) # header row
writer.writerow(["Alex", 30]) # data row, values quoted/escaped automatically
with open("data.csv") as f:
print(f.read())
DictReader और DictWriter
csv.DictReader plain list की बजाय हर row को column headers से keyed एक dictionary में बदल देता है, ताकि आप row[3] की बजाय row[email] लिख सकें -- DictWriter इसका उल्टा करता है, जिससे आप dictionaries से rows लिख सकते हैं।
उदाहरण: DictReader and DictWriter
import csv
with open("data.csv", "w", newline="") as f:
writer = csv.DictWriter(f, fieldnames=["name", "email"])
writer.writeheader()
writer.writerow({"name": "Alex", "email": "[email protected]"})
with open("data.csv", newline="") as f:
for row in csv.DictReader(f): # each row comes back as a dict keyed by header
print(row["email"])
Delimiters को Handle करना
हर 'CSV-जैसी' file वाकई commas इस्तेमाल नहीं करती -- कुछ tabs या semicolons इस्तेमाल करती हैं -- और csv.reader और csv.writer दोनों एक delimiter parameter स्वीकार करते हैं ताकि आपको custom parsing logic लिखे बिना उन variants को संभाला जा सके।
उदाहरण: Handling Delimiters
import csv
with open("data.csv", "w", newline="") as f:
writer = csv.writer(f, delimiter=";") # use ; instead of , as the separator
writer.writerow(["name", "age"])
with open("data.csv", newline="") as f:
for row in csv.reader(f, delimiter=";"):
print(row)
Chapter Quiz — Complete all 6 topics to unlock
0/6 topics done
Complete these topics first: