본문 바로가기
카테고리 없음

[파이썬 심화] 텍스트 파일 읽고 쓰기, CSV 파일처리, JSON 데이터 처리

by 개발자를 꿈꾸는 사람들과 함꼐 2025. 4. 11.

텍스트 파일 읽고 쓰기

파이썬에서 텍스트 파일을 다루는 기본 방법은 open() 함수를 사용하는 것입니다.
자동화를 위해서는 파일을 읽고, 수정하거나, 새로 생성하는 작업을 자유롭게 수행할 수 있어야 합니다.

1. 텍스트 파일 쓰기 (쓰기 모드 'w')

with open("memo.txt", "w", encoding="utf-8") as f:
    f.write("자동 저장 메모\n오늘도 파이썬 공부 중")

해석:

  • "w"는 쓰기(write) 모드이며, 파일이 없으면 생성, 있으면 덮어씁니다.
  • with open() 구문을 사용하면 파일을 자동으로 닫아줍니다.
  • encoding="utf-8"은 한글 깨짐 방지에 필수입니다.

2. 텍스트 파일 읽기

with open("memo.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

해석:

  • "r"은 읽기(read) 모드입니다.
  • f.read()는 파일 전체 내용을 하나의 문자열로 가져옵니다.

텍스트 파일을 자동으로 읽고 가공하는 작업은 로그 분석, 문서 처리 자동화에 자주 사용됩니다.

3. 한 줄씩 읽기

with open("memo.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line.strip())

해석:

  • 파일 객체는 for문으로 줄 단위 반복이 가능합니다.
  • strip()은 줄바꿈 문자 제거에 사용됩니다.

CSV 파일 자동 처리

CSV(Comma-Separated Values)는 표 형태의 데이터를 쉽고 가볍게 저장하는 형식입니다.
파이썬의 csv 모듈을 사용하면 데이터를 쉽게 읽고 쓸 수 있습니다.

1. CSV 파일 쓰기

import csv

with open("scores.csv", "w", newline="", encoding="utf-8-sig") as f:
    writer = csv.writer(f)
    writer.writerow(["이름", "국어", "수학"])
    writer.writerow(["지민", 90, 85])
    writer.writerow(["태형", 95, 80])

해석:

  • csv.writer()는 리스트 형태 데이터를 행 단위로 작성합니다.
  • newline=""을 넣어야 줄바꿈 문제를 방지할 수 있습니다.
  • utf-8-sig는 엑셀에서 한글이 깨지지 않도록 하는 인코딩입니다.

2. CSV 파일 읽기

with open("scores.csv", "r", encoding="utf-8-sig") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

해석:

  • csv.reader()는 파일을 행 단위로 읽고, 각 행을 리스트로 반환합니다.
  • 반복문으로 행 하나씩 처리할 수 있습니다.

3. 딕셔너리 형태로 읽기 - DictReader

with open("scores.csv", "r", encoding="utf-8-sig") as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(f"{row['이름']}의 국어 점수: {row['국어']}")

해석:
DictReader는 첫 줄을 키로 인식하여 각 행을 딕셔너리로 반환합니다.
키-값 형식으로 접근이 가능해 가독성과 활용성이 매우 좋습니다.

 

JSON 데이터 입출력과 API 연동

JSON(JavaScript Object Notation)은 웹에서 가장 널리 쓰이는 데이터 형식입니다.
파이썬의 json 모듈을 사용하면 JSON을 손쉽게 파싱하고 생성할 수 있습니다.

1. JSON 파일로 저장 (dump)

import json

data = {
    "이름": "정국",
    "취미": ["노래", "춤", "운동"],
    "나이": 26
}

with open("profile.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

해석:

  • json.dump(): 데이터를 JSON 형식으로 파일에 저장
  • ensure_ascii=False: 한글 깨짐 방지
  • indent=2: 보기 좋은 들여쓰기 적용

2. JSON 파일 읽기 (load)

with open("profile.json", "r", encoding="utf-8") as f:
    profile = json.load(f)
    print(profile["이름"])

해석:
json.load()를 사용하면 파일의 JSON 데이터를 파이썬 딕셔너리로 불러올 수 있습니다.
이후에는 딕셔너리처럼 키를 통해 데이터를 다룰 수 있습니다.

3. JSON 문자열 처리

json_str = '{"이름": "지민", "나이": 28}'
parsed = json.loads(json_str)
print(parsed["나이"])  # 28

해석:

  • json.loads(): 문자열을 파이썬 객체로 변환
  • json.dumps(): 파이썬 객체를 JSON 문자열로 변환

API와 통신할 때 주고받는 데이터가 대부분 JSON이므로 이 처리 능력은 필수입니다.