CSV(Comma Separated Values)는 아래와 같이 comma로 구분되어 저장된 데이터 형식을 말합니다.
SN, Country, City
1, Korea, Seoul
2, Japanese, Tokyo
파이썬에서 CSV 파일을 읽고 쓰는 방법에 대해서 알아보겠습니다.
1. CSV 파일 읽기
다음과 같이 데이터가 comma로 구분된 CSV 파일이 있습니다.
SN,Country,City
1,Korea,Seoul
2,Japanese,Tokyo
아래와 같이 csv 모듈을 사용하여 comma로 구분된 CSV 파일을 읽을 수 있습니다.
import csv
with open("countries.csv", 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
Output:
['SN', 'Country', 'City']
['1', 'Korea', 'Seoul']
['2', 'Japanese', 'Tokyo']
2. 다른 구분자를 사용하는 CSV 파일 읽기
아래와 같이 ,
대신에 스페이스나 Tab과 같은 구분자를 사용하는 CSV 파일이 있을 수 있습니다.
SN Country City
1 Korea Seoul
2 Japanese Tokyo
csv 모듈은 csv.reader(file, delimiter)
과 같이 구분자를 인자로 받아, 다른 구분자로 만들어진 CSV 파일을 읽을 수 있습니다.
아래 예제에서는 delimiter=' '
로 스페이스를 구분자로 전달하여 위의 CSV 파일을 읽습니다.
import csv
with open("countries2.csv", 'r') as file:
reader = csv.reader(file, delimiter=' ')
for row in reader:
print(row)
Output:
['SN', 'Country', 'City']
['1', 'Korea', 'Seoul']
['2', 'Japanese', 'Tokyo']
3. CSV 파일을 dict로 읽기
리스트가 아닌 key-value
형태의 딕셔너리로 CSV 파일을 읽으려면 아래와 같이 DictReader()
를 사용하면 됩니다.
import csv
with open("countries.csv", 'r') as file:
reader = csv.DictReader(file)
for row in reader:
print(dict(row))
Output:
{'SN': '1', ' Country': ' Korea', ' City': ' Seoul'}
{'SN': '2', ' Country': ' Japanese', ' City': ' Tokyo'}
4. CSV 형식으로 파일 쓰기 (1)
다음은 CSV 형식으로 파일을 저장하는 예제입니다. header, row 순서로 쓰면 됩니다.
import csv
with open("cities.csv", 'w') as file:
writer = csv.writer(file)
writer.writerow(["SN", "City", "Country"])
writer.writerow(["1", "Seoul", "Korea"])
writer.writerow(["1", "Tokyo", "Japanese"])
cities.csv
파일을 열어보면 아래와 같이 저장됩니다.
SN,City,Country
1,Seoul,Korea
1,Tokyo,Japanese
5. CSV 형식으로 파일 쓰기 (2)
아래와 같이 모든 데이터가 있는 리스트를 writerows()
에 인자로 전달하여 한번에 쓸 수 있습니다.
import csv
csv_rows = [["SN", "City", "Country"], ["1", "Seoul", "Korea"], ["1", "Tokyo", "Japanese"]]
with open("cities.csv", 'w') as file:
writer = csv.writer(file)
writer.writerows(csv_rows)
cities.csv
파일을 열어보면 아래와 같이 저장됩니다.
SN,City,Country
1,Seoul,Korea
1,Tokyo,Japanese
6. 구분자 변경하여 CSV 형식으로 파일 쓰기
comma가 아닌 다른 구분자로 CSV 파일을 만들 수 있습니다. 아래와 같이 writer(file, delimiter)
함수에 원하는 구분자를 인자로 전달하면 됩니다.
import csv
with open("cities.csv", 'w') as file:
writer = csv.writer(file, delimiter=' ')
writer.writerow(["SN", "City", "Country"])
writer.writerow(["1", "Seoul", "Korea"])
writer.writerow(["1", "Tokyo", "Japanese"])
cities.csv
파일을 열어보면 아래와 같이 저장됩니다.
SN City Country
1 Seoul Korea
1 Tokyo Japanese
7. dict로 CSV 파일 쓰기
아래와 같이 key-value
형태의 딕셔너리 객체로 CSV 파일을 만들 수 있습니다.
import csv
with open("cities.csv", 'w') as file:
header = ["SN", "City", "Country"]
writer = csv.DictWriter(file, fieldnames=header)
writer.writeheader()
writer.writerow({"SN": "1", "City": "Seoul", "Country": "Korea"})
writer.writerow({"SN": "2", "City": "Tokyo", "Country": "Japanese"})
cities.csv
파일을 열어보면 아래와 같이 저장됩니다.
SN,City,Country
1,Seoul,Korea
2,Tokyo,Japanese
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)