(Python 모듈) csv : CSV 파일을 읽고 쓰기 위한 모듈

1. csv 모듈이란 무엇입니까?

csv 모듈은 쉼표로 구분된 값(CSV) 파일을 읽고 쓰기 위한 모듈안돼. CSV 파일은 쉼표(,)로 구분된 텍스트 파일에 데이터를 저장하는 파일 형식입니다. 이 모듈을 사용하면 CSV 파일을 간결하게 처리하는 코드를 작성하고 데이터를 빠르게 처리할 수 있습니다. csv 모듈은 기본적으로 구분 기호로 쉼표(,)를 사용합니다. 다른 구분 기호를 사용할 수 있습니다. 또한 문자열 및 숫자와 같은 다양한 데이터 유형을 지원합니다.

CSV 모듈 별도의 설치 과정이 필요하지 않습니다. 모듈을 사용하려면 다음과 같이 가져옵니다.

import csv


2. csv.reader

csv.reader() 함수 CSV 파일을 읽을 때 사용하는 기능안돼. 이 함수는 CSV 파일의 각 행을 목록으로 반환합니다. csv.reader() 함수를 첫 번째 매개변수로 사용 파일 개체두 번째 매개변수로 CSV 파일 구분 기호받다. 기본적으로 csv 모듈은 쉼표(,)를 구분 기호로 사용합니다.

코드는 csv.reader() 함수를 사용하여 ‘example.csv’ 파일을 읽고 각 행을 출력합니다.

import csv

# CSV 파일 열기
with open('example.csv', newline="") as csvfile:
    # CSV 파일 읽기
    reader = csv.reader(csvfile, delimiter=",")
    
    # 각 행 출력
    for row in reader:
        print(row)


3. csv.작가

csv.writer() 함수 CSV 파일을 작성할 때 사용하는 기능안돼. 이 함수는 CSV 파일의 각 행이 쉼표(,)로 구분된 문자열로 작성되도록 지정합니다. csv.writer() 함수는 파일 개체를 첫 번째 매개변수로 받고 CSV 파일의 구분 기호를 두 번째 매개변수로 받습니다. 기본적으로 csv 모듈은 쉼표(,)를 구분 기호로 사용합니다.

코드는 csv.writer() 함수를 사용하여 ‘example.csv’ 파일을 작성하고, 구분 기호로 구분된 문자열 형식으로 각 행을 작성합니다.

import csv

# CSV 파일 쓰기
with open('example.csv', 'w', newline="") as csvfile:
    # CSV 파일 쓰기
    writer = csv.writer(csvfile, delimiter=",")
    
    # 행 쓰기
    writer.writerow(('Name', 'Age', 'City'))
    writer.writerow(('Alice', '25', 'New York'))
    writer.writerow(('Bob', '30', 'Los Angeles'))


4. csv.DictReader

csv.DictReader() 함수 CSV 파일을 읽을 때 사용하는 기능안돼. 이 함수는 CSV 파일의 각 행을 사전 형식으로 반환합니다. csv.DictReader() 함수는 첫 번째 매개변수로 파일 개체를 받고 두 번째 매개변수로 CSV 파일 구분 기호를 받습니다. 또한 DictReader 객체를 생성할 때 fieldnames 매개변수를 사용하여 각 열의 이름을 지정하십시오.당신은 할 수 있습니다.

코드는 csv.DictReader() 함수를 사용하여 ‘example.csv’ 파일을 읽고 각 행을 사전 형태로 출력합니다.

import csv

# CSV 파일 열기
with open('example.csv', newline="") as csvfile:
    # CSV 파일 읽기
    reader = csv.DictReader(csvfile, delimiter=",", fieldnames=('Name', 'Age', 'City'))
    
    # 각 행 출력
    for row in reader:
        print(row)


5. csv.DictWriter

csv.DictWriter() 함수 CSV 파일을 작성할 때 사용하는 기능안돼. 이 함수는 CSV 파일에 사전 형식의 데이터를 쓸 수 있습니다. csv.DictWriter() 함수는 첫 번째 매개변수로 파일 개체를 받고 두 번째 매개변수로 CSV 파일 구분 기호를 받습니다. 또한 DictWriter 개체를 만들 때 fieldnames 매개 변수를 사용하여 각 열의 이름을 지정할 수 있습니다.

코드는 csv.DictWriter() 함수를 사용하여 ‘example.csv’ 파일에 사전 형태의 데이터를 쓰고 각 행을 구분 기호로 구분된 문자열 형태로 씁니다.

import csv

# 딕셔너리 형태의 데이터
data = (
    {'Name': 'Alice', 'Age': 25, 'City': 'New York'},
    {'Name': 'Bob', 'Age': 30, 'City': 'Los Angeles'},
    {'Name': 'Charlie', 'Age': 28, 'City': 'Chicago'}
)

# CSV 파일 쓰기
with open('example.csv', 'w', newline="") as csvfile:
    # CSV 파일 쓰기
    writer = csv.DictWriter(csvfile, fieldnames=('Name', 'Age', 'City'))
    
    # 행 쓰기
    writer.writeheader()
    for row in data:
        writer.writerow(row)

writeheader() 메서드는 DictWriter 객체의 인스턴스 메서드이며 인수를 사용하지 않습니다. 이 메소드는 CSV 파일의 첫 번째 행에 헤더를 작성하고 DictWriter 객체 생성자의 fieldnames 인수에 지정된 순서대로 각 열의 이름을 출력합니다.

writerow() 메서드는 DictWriter 개체의 인스턴스 메서드이며 사전을 인수로 사용합니다. 이 메서드는 받은 사전을 CSV 파일에 한 줄로 씁니다. 사전의 키는 CSV 파일의 열에 해당하며 값은 해당 열에 기록됩니다.


6. 운동

문제: “엔지니어”라는 직함을 가진 30세 이하의 사람들의 이름과 도시를 CSV 파일로 인쇄하는 코드를 작성하십시오.

CSV 파일 예

Name,Occupation,Age,City
John,Engineer,28,San Francisco
Jane,Designer,35,New York
Mike,Engineer,24,Los Angeles
Alice,Artist,29,Chicago

코드에서 csv.DictReader() 함수를 사용하여 ‘example.csv’ 파일을 읽고 각 행을 사전 형태로 확인합니다. 조건이 만족되면 결과가 저장될 목록에 추가됩니다. 마지막으로 결과를 출력합니다.

import csv

# CSV 파일 열기
with open('example.csv', newline="") as csvfile:
    # CSV 파일 읽기
    reader = csv.DictReader(csvfile)
    
    # 결과 저장할 리스트 초기화
    results = ()
    
    # 각 행 검사
    for row in reader:
        # 조건 검사
        if row('Occupation') == 'Engineer' and int(row('Age')) <= 30:
            results.append({'Name': row('Name'), 'City': row('City')})
    
    # 결과 출력
    for result in results:
        print(f"{result('Name')} ({result('City')})")