Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 읽기 쓰기 CSV 파일

이 게시물에서는 Python에서 CSV 파일을 읽고 쓰는 방법을 살펴보겠습니다. 예제에서는 CSV 모듈과 Pandas를 사용합니다.

Python CSV 모듈을 사용하여 CSV 파일 읽기

이 코드 예제는 orders.csv라는 파일을 읽습니다. 데이터를 반복합니다.

import csv

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

order.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)

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

Pandas를 사용하여 CSV 파일 읽기

Pandas를 사용하려면 먼저 Pandas 라이브러리를 설치해야 합니다.

설치하려면 다음 명령을 실행하십시오. pip3 install pandas .

import pandas

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

order.csv 출력:

OrderID  CustomerID   OrderDate
10248           4     10/02/2020
10249           2     10/02/2020
10250           7     10/02/2020

Pandas를 사용하여 Python 쓰기 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 모듈을 사용하여 Python 쓰기 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'])

order.csv 출력:

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

csv 모듈을 사용하여 기존 csv 파일에 추가하려면 'a'를 전달해야 합니다. open() 매개변수 방법. "제목"도 건너뛰어야 합니다.

예:

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

DictWriter로 CSV 파일 작성

DictWriter를 사용할 수도 있습니다. csv 메소드 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'})

order.csv 출력:

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