Guidelines

CSV의 κ°œλ…κ³Ό 파이썬 ν™œμš©λ²•

CSV(Comma-Separated Values)λŠ” κ°„λ‹¨ν•œ ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ 데이터λ₯Ό μ €μž₯ν•˜κ³  κ΅ν™˜ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

CSV νŒŒμΌμ€ ν‘œ ν˜•μ‹μ˜ 데이터λ₯Ό ν…μŠ€νŠΈλ‘œ μ €μž₯ν•˜λ©°, 각 데이터 ν•„λ“œλŠ” μ‰Όν‘œ(,)둜 κ΅¬λΆ„λ©λ‹ˆλ‹€.

example.csv
이름,λ‚˜μ΄,λ„μ‹œ 홍길동,24,μ„œμšΈ λ°•λ―Όμ£Ό,30,λΆ€μ‚°

CSVλŠ” μŠ€ν”„λ ˆλ“œμ‹œνŠΈ ν”„λ‘œκ·Έλž¨(예: Microsoft Excel, Google Sheets) 및 λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œκ³Ό ν˜Έν™˜λ©λ‹ˆλ‹€.


CSV의 기본 ꡬ쑰

헀더: 파일의 첫 번째 쀄은 μ˜΅μ…˜μœΌλ‘œ, 각 μ—΄(column)의 이름을 포함할 수 μžˆμŠ΅λ‹ˆλ‹€. ν—€λ”λŠ” 데이터λ₯Ό ν•΄μ„ν•˜λŠ” 데 도움을 μ€λ‹ˆλ‹€.

λ ˆμ½”λ“œ(ν–‰): 각 행은 ν•˜λ‚˜μ˜ 데이터 λ ˆμ½”λ“œλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 일반적으둜 λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν•˜λ‚˜μ˜ μ—”νŠΈλ¦¬λ‚˜ 객체λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

ν•„λ“œ(μ—΄): ν–‰ λ‚΄μ˜ 각 데이터 ν•­λͺ©μ€ ν•„λ“œλΌκ³  ν•˜λ©°, μ‰Όν‘œλ‘œ κ΅¬λΆ„λ©λ‹ˆλ‹€. 이 ν•„λ“œλ“€μ€ 각각의 데이터 포인트λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.


CSV 파일 읽기 및 μ“°κΈ°

파이썬의 csv λ‚΄μž₯ λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ©΄ CSV νŒŒμΌμ„ μ‰½κ²Œ 읽고 μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€.


csv.reader: CSV 파일 읽기

csv.readerλŠ” CSV νŒŒμΌμ„ 읽기 μœ„ν•œ 객체λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

이 κ°μ²΄λŠ” 파일 λ‚΄μ˜ 각 λ ˆμ½”λ“œ(ν–‰)을 μˆœνšŒν•˜λ©°, 각 λ ˆμ½”λ“œλ₯Ό ν•„λ“œ(μ—΄)의 리슀트둜 λ³€ν™˜ν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€. 기본적으둜 λ°μ΄ν„°λŠ” μ‰Όν‘œλ‘œ κ΅¬λΆ„λ˜μ§€λ§Œ, λ‹€λ₯Έ κ΅¬λΆ„μžλ„ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.

csv.reader 예제
import csv with open('example.csv', 'r', newline='') as file: reader = csv.reader(file) for row in reader: print(row)

μœ„ μ½”λ“œλŠ” example.csv νŒŒμΌμ„ μ—΄κ³ , 파일의 각 행을 좜λ ₯ν•©λ‹ˆλ‹€.

newline=''λŠ” νŒŒμΌμ„ μ—΄ λ•Œ ꢌμž₯λ˜λŠ” λ°©μ‹μœΌλ‘œ, ν”Œλž«νΌμ— 관계없이 μΌκ΄€λœ κ°œν–‰ 문자(μ€„λ°”κΏˆ) 처리λ₯Ό μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.


csv.writer: CSV 파일 μ“°κΈ°

csv.writerλŠ” CSV νŒŒμΌμ— 데이터λ₯Ό μ“°κΈ° μœ„ν•œ 객체λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

이 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터 ν•„λ“œλ₯Ό ν¬ν•¨ν•œ 행을 CSV νŒŒμΌμ— μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€. csv.writer μ—­μ‹œ 기본적으둜 μ‰Όν‘œλ₯Ό ν•„λ“œ κ΅¬λΆ„μžλ‘œ μ‚¬μš©ν•˜μ§€λ§Œ, ν•„μš”μ— 따라 λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

csv.writer 예제
import csv with open('output.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerow(['name', 'age', 'city']) writer.writerow(['John Doe', '30', 'New York']) writer.writerow(['Jane Smith', '25', 'Los Angeles'])

이 μ½”λ“œλŠ” μƒˆλ‘œμš΄ output.csv νŒŒμΌμ„ μƒμ„±ν•˜κ³ , 각 행에 데이터λ₯Ό μ“°κΈ° μœ„ν•΄ writerow λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

첫 번째 writerow ν˜ΈμΆœμ€ 헀더 행을 μž‘μ„±ν•˜κ³ , 이후 ν˜ΈμΆœμ—μ„œλŠ” 데이터 행을 μΆ”κ°€ν•©λ‹ˆλ‹€.


csv λͺ¨λ“ˆμ˜ λ‹€λ₯Έ κΈ°λŠ₯λ“€

  • csv.DictReader: CSV νŒŒμΌμ„ λ”•μ…”λ„ˆλ¦¬ 객체둜 μ½μ–΄λ“€μž…λ‹ˆλ‹€.

  • csv.DictWriter: 사전 객체λ₯Ό CSV 파일둜 μž‘μ„±ν•©λ‹ˆλ‹€.


DictReader, DictWriter 예제

λ™μΌν•œ 파일 경둜의 example.csv 파일 처리
# λ™μΌν•œ 파일 경둜의 xample.csv νŒŒμΌμ„ λ”•μ…”λ„ˆλ¦¬λ‘œ 읽기 with open('example.csv', 'r') as file: csv_reader = csv.DictReader(file) # 각 행을 좜λ ₯ for row in csv_reader: print(row) # ν•„λ“œλͺ… fieldnames = ['name', 'age', 'city'] # 데이터 rows = [ {'name': 'κΉ€μ² μˆ˜', 'age': 20, 'city': 'λŒ€μ „'}, {'name': '이영희', 'age': 22, 'city': 'κ΄‘μ£Ό'} ] with open('output_dict.csv', 'w', newline='') as file: # ν•„λ“œλͺ…을 지정 csv_writer = csv.DictWriter(file, fieldnames=fieldnames) # 헀더 μž‘μ„± csv_writer.writeheader() # 데이터 μž‘μ„± for row in rows: csv_writer.writerow(row)

μ°Έκ³ : ν˜„μž¬ ν•™μŠ΅ ν™˜κ²½μ—μ„œλŠ” open ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ νŒŒμΌμ„ 직접 읽고 μ“°λŠ” 것을 μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


μ‹€μŠ΅

ν™”λ©΄ 였λ₯Έμͺ½ μ½”λ“œ μ‹€ν–‰ λ²„νŠΌμ„ λˆ„λ₯΄κ³ , 크둀링 κ²°κ³Όλ₯Ό ν™•μΈν•˜κ±°λ‚˜ μ½”λ“œλ₯Ό μˆ˜μ •ν•΄ λ³΄μ„Έμš”!

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result