„Python“ skaitymo rašymo CSV failas

Šiame įraše mes apžvelgsime, kaip skaityti ir rašyti CSV failus „Python“. Pavyzdžiuose naudojamas CSV modulis ir „Pandas“.



„Python“ skaitykite CSV failą naudodami CSV modulį

Šis kodo pavyzdys nuskaito failą pavadinimu orders.csv ir peržiūri duomenis:

import csv f = open('orders.csv', 'rt') orders = csv.reader(f) for order in orders:
print(order) f.close()

Užsakymų.csv išvestis:


['OrderID', 'CustomerID', 'OrderDate'] ['10248', '4', '10/02/2020'] ['10249', '2', '10/02/2020'] ['10250', '7', '10/02/2020']

Skaitykite CSV failą kaip žodyną

Naudojant DictReader metodas kiekviena CSV failo eilutė žodyne pateikiama kaip eilutė, o stulpelio antraštė yra raktas.

import csv orders = csv.DictReader(open('orders.csv')) for order in orders:
print(order)

Užsakymų.csv išvestis:


{'OrderID': '10248', 'CustomerID': '4', 'OrderDate': '10/02/2020'} {'OrderID': '10249', 'CustomerID': '2', 'OrderDate': '10/02/2020'} {'OrderID': '10250', 'CustomerID': '7', 'OrderDate': '10/02/2020'}

Perskaitykite CSV failą naudodami „Pandas“

Norėdami naudoti „Pandas“, pirmiausia turime įdiegti „Pandas“ biblioteką.



Norėdami įdiegti, vykdykite šią komandą: pip3 install pandas.

import pandas orders = pandas.read_csv('orders.csv') print(orders)

Užsakymų.csv išvestis:

OrderID CustomerID OrderDate 10248

4
10/02/2020 10249

2
10/02/2020 10250

7
10/02/2020


„Python“ rašykite CSV naudodami „Pandas“

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 išvestis:


OrderID,CustomerID,OrderDate 10251,5,11/02/2020 10252,1,11/02/2020 10253,8,11/02/2020

Pridėti duomenis prie esamo CSV failo

Numatytasis režimas rašant į csv failą yra 'w'. Jei norime pridėti duomenis prie esamo CSV failo, turime naudoti pridėjimo režimą, pvz. 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 išvestis:

OrderID,CustomerID,OrderDate 10251,5,11/02/2020 10252,1,11/02/2020 10253,8,11/02/2020 10254,3,11/02/2020

„Python“ rašykite CSV naudodami CSV modulį

N.B. Pirmoji eilutė naudojama kaip stulpelio antraštė

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'])

Užsakymų.csv išvestis:


OrderID,CustomerID,OrderDate 10251,6,11/02/2020 10252,9,11/02/2020 10253,5,11/02/2020

Jei norite pridėti esamą csv failą naudodami csv modulį, turite įvesti 'a' parametras open() metodas. Taip pat turite praleisti „antraštes“.

Pavyzdžiui:

with open('orders.csv', 'a', newline='') as file:
order = csv.writer(file)
order.writerow(['10251', '6', '11/02/2020'])


Parašykite CSV failą naudodami „DictWriter“

Taip pat galime naudoti DictWriter csv metodas klasę sukurti ir parašyti CSV failą.

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'})

Užsakymų.csv išvestis:


OrderID,CustomerID,OrderDate 10251,7,11/02/2020 10252,3,11/02/2020 10253,1,11/02/2020