এই পোস্টে আমরা দেখব কীভাবে পাইথনে CSV ফাইল পড়া এবং লেখা যায়। উদাহরণগুলো CSV মডিউল এবং Pandas ব্যবহার করে।
CSV মডিউল ব্যবহার করে পাইথনে CSV ফাইল পড়া
এই কোড উদাহরণটি orders.csv নামে একটি ফাইল পড়ে এবং ডেটার মাধ্যমে লুপ করে:
import csv
f = open("orders.csv", "rt")
orders = csv.reader(f)
for order in orders:
print(order)
f.close()
orders.csv আউটপুট:
['OrderID', 'CustomerID', 'OrderDate']
['10248', '4', '10/02/2020']
['10249', '2', '10/02/2020']
['10250', '7', '10/02/2020']
CSV ফাইল ডিকশনারি হিসেবে পড়া
DictReader মেথড ব্যবহার করে CSV ফাইলের প্রতিটি সারি ডিকশনারিতে একটি সারি হিসেবে উপস্থাপিত হয়, কলাম হেডার কি হিসেবে।
import csv
orders = csv.DictReader(open("orders.csv"))
for order in orders:
print(order)
orders.csv আউটপুট:
{'OrderID': '10248', 'CustomerID': '4', 'OrderDate': '10/02/2020'}
{'OrderID': '10249', 'CustomerID': '2', 'OrderDate': '10/02/2020'}
{'OrderID': '10250', 'CustomerID': '7', 'OrderDate': '10/02/2020'}
Pandas ব্যবহার করে CSV ফাইল পড়া
Pandas ব্যবহার করতে হলে, প্রথমে Pandas লাইব্রেরি ইনস্টল করতে হবে।
ইনস্টল করতে এই কমান্ড চালান: pip3 install pandas।
import pandas
orders = pandas.read_csv('orders.csv')
print(orders)
orders.csv আউটপুট:
OrderID CustomerID OrderDate
10248 4 10/02/2020
10249 2 10/02/2020
10250 7 10/02/2020
Pandas ব্যবহার করে পাইথনে CSV লেখা
from pandas import DataFrame
import pandas as pd
order = pd.DataFrame({'OrderID': ['10251', '10252', '10253'],
'CustomerID': ['5', '1', '8'],
'OrderDate': ['11/02/2020', '11/02/2020', '11/02/2020']})
order.to_csv('newOrders.csv', index=False)
newOrders.csv আউটপুট:
OrderID,CustomerID,OrderDate
10251,5,11/02/2020
10252,1,11/02/2020
10253,8,11/02/2020
এক্সিস্টিং CSV ফাইলে ডেটা অ্যাপেন্ড করা
CSV ফাইলে লেখার ডিফল্ট মোড 'w'। যদি আমরা এক্সিস্টিং CSV ফাইলে ডেটা অ্যাপেন্ড করতে চাই, তবে আমাদের অ্যাপেন্ড মোড ব্যবহার করতে হবে, যেমন mode='a'
from pandas import DataFrame
import pandas as pd
order = pd.DataFrame({'OrderID': ['10254'],
'CustomerID': ['3'],
'OrderDate': ['11/02/2020']})
order.to_csv('newOrders.csv', mode='a', index=False, header=False)
newOrders.csv আউটপুট:
OrderID,CustomerID,OrderDate
10251,5,11/02/2020
10252,1,11/02/2020
10253,8,11/02/2020
10254,3,11/02/2020
CSV মডিউল ব্যবহার করে পাইথনে CSV লেখা
দ্রষ্টব্য: প্রথম সারি কলাম হেডার হিসেবে ব্যবহৃত হয়
import csv
with open('orders.csv', 'w', newline='') as file:
order = csv.writer(file)
order.writerow(['OrderID', 'CustomerID', 'OrderDate'])
order.writerow(['10251', '6', '11/02/2020'])
order.writerow(['10252', '9', '11/02/2020'])
order.writerow(['10253', '5', '11/02/2020'])
orders.csv আউটপুট:
OrderID,CustomerID,OrderDate
10251,6,11/02/2020
10252,9,11/02/2020
10253,5,11/02/2020
যদি আপনি CSV মডিউল ব্যবহার করে এক্সিস্টিং csv ফাইলে অ্যাপেন্ড করতে চান, তবে open() মেথডে 'a' প্যারামিটার পাস করতে হবে। আপনাকে "হেডিং" স্কিপ করতে হবে।
উদাহরণ:
with open('orders.csv', 'a', newline='') as file:
order = csv.writer(file)
order.writerow(['10251', '6', '11/02/2020'])
DictWriter ব্যবহার করে CSV ফাইল লেখা
আমরা csv ক্লাসের DictWriter মেথডও ব্যবহার করতে পারি CSV ফাইল তৈরি এবং লেখার জন্য।
import csv
with open('orders.csv', 'w', newline='') as file:
fieldnames = ['OrderID', 'CustomerID', 'OrderDate']
order = csv.DictWriter(file, fieldnames=fieldnames)
order.writeheader()
order.writerow({'OrderID': '10251', 'CustomerID': 7, 'OrderDate': '11/02/2020'})
order.writerow({'OrderID': '10252', 'CustomerID': 3, 'OrderDate': '11/02/2020'})
order.writerow({'OrderID': '10253', 'CustomerID': 1, 'OrderDate': '11/02/2020'})
orders.csv আউটপুট:
OrderID,CustomerID,OrderDate
10251,7,11/02/2020
10252,3,11/02/2020
10253,1,11/02/2020