Sa post na ito titingnan namin kung paano basahin at isulat ang mga CSV file sa Python. Ang mga halimbawa ay gumagamit ng module ng CSV at Pandas.
Ang halimbawa ng code na ito ay nagbabasa ng isang file na pinangalanang orders.csv
at mga loop sa pamamagitan ng data:
import csv f = open('orders.csv', 'rt') orders = csv.reader(f) for order in orders:
print(order) f.close()
Output ng mga order.csv:
['OrderID', 'CustomerID', 'OrderDate'] ['10248', '4', '10/02/2020'] ['10249', '2', '10/02/2020'] ['10250', '7', '10/02/2020']
Gamit ang DictReader
pamamaraan bawat hilera sa CSV file ay kinakatawan bilang isang hilera sa diksyunaryo, na may header ng haligi na ang susi.
import csv orders = csv.DictReader(open('orders.csv')) for order in orders:
print(order)
Output ng mga order.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'}
Upang magamit ang Pandas, kailangan muna naming i-install ang Pandas library.
Upang mai-install, patakbuhin ang utos na ito: pip3 install pandas
.
import pandas orders = pandas.read_csv('orders.csv') print(orders)
Output ng mga order.csv:
OrderID CustomerID OrderDate 10248
4
10/02/2020 10249
2
10/02/2020 10250
7
10/02/2020
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)
Output ng newOrders.csv:
OrderID,CustomerID,OrderDate 10251,5,11/02/2020 10252,1,11/02/2020 10253,8,11/02/2020
Ang default mode kapag sumusulat sa csv file ay 'w'
. Kung nais naming idagdag ang data sa isang mayroon nang CSV file kailangan naming gamitin ang append mode, hal. 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)
Output ng 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
Ang N.B. Ang unang hilera ay ginagamit bilang header ng haligi
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'])
Output ng mga order.csv:
OrderID,CustomerID,OrderDate 10251,6,11/02/2020 10252,9,11/02/2020 10253,5,11/02/2020
Kung nais mong idagdag sa isang mayroon nang csv file gamit ang module na csv, kailangan mong pumasa sa 'a'
parameter sa open()
pamamaraan Kailangan mo ring laktawan ang 'mga heading'.
Halimbawa:
with open('orders.csv', 'a', newline='') as file:
order = csv.writer(file)
order.writerow(['10251', '6', '11/02/2020'])
Maaari din naming magamit ang DictWriter
paraan ng csv
klase upang lumikha at magsulat ng isang CSV file.
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'})
Output ng mga order.csv:
OrderID,CustomerID,OrderDate 10251,7,11/02/2020 10252,3,11/02/2020 10253,1,11/02/2020