어제 오늘 내일

[Python 실전] 텍스트 파일을 읽어 딕셔너리로 변환하는 3가지 방법 본문

IT/Python

[Python 실전] 텍스트 파일을 읽어 딕셔너리로 변환하는 3가지 방법

hi.anna 2026. 6. 13. 12:38

1. JSON 형식으로 저장된 텍스트 읽기 (가장 추천)

파일 내용이 { "key": "value" } 형태라면 json 모듈을 사용하는 것이 가장 빠르고 안전합니다. 한 줄씩 읽을 필요 없이 파일 전체를 한 번에 딕셔너리로 복구합니다.

📌 예제 코드

import json

# 파일 읽기
with open("user.txt", "r", encoding="utf-8") as f:
    # 파일 전체 내용을 딕셔너리로 바로 변환
    data_dict = json.load(f)

print(data_dict)
print(type(data_dict)) # <class 'dict'>

2. "Key: Value" 형태로 한 줄씩 기록된 경우

메모장 등에 과목: 점수처럼 사람이 읽기 좋게 기록된 텍스트는 한 줄씩 읽어서 직접 쪼개야 합니다.

📌 예제 코드:  활용

# scores.txt 내용 예시:
# 수학: 90
# 영어: 85

result_dict = {}

with open("scores.txt", "r", encoding="utf-8") as f:
    for line in f:
        # 1. 줄바꿈 문자 제거 및 ' : ' 기준으로 쪼개기
        line = line.strip()
        if ":" in line:
            key, value = line.split(":")
            # 2. 앞뒤 공백 제거 후 딕셔너리에 추가
            result_dict[key.strip()] = value.strip()

print(result_dict)
# 출력: {'수학': '90', '영어': '85'}

3. 여러 개의 데이터가 줄바꿈으로 구분된 경우

예를 들어 ID, 이름, 지역이 한 줄씩 길게 나열된 텍스트 파일을 딕셔너리 리스트로 만드는 방법입니다.

📌 예제 코드: 실무형 데이터 파싱

# data.txt 내용 예시:
# 1,철수,서울
# 2,영희,부산

user_list = []
keys = ["id", "name", "city"]

with open("data.txt", "r", encoding="utf-8") as f:
    for line in f:
        values = line.strip().split(",")
        # zip을 사용해 key와 value를 매칭한 뒤 딕셔너리 생성
        user_dict = dict(zip(keys, values))
        user_list.append(user_dict)

print(user_list)
# 출력: [{'id': '1', 'name': '철수', 'city': '서울'}, ...]

📝 핵심 요약 및 주의사항

  1. .strip() 사용: 파일을 읽으면 줄 끝에 눈에 보이지 않는 줄바꿈 문자(\n)가 포함되므로 반드시 제거해야 합니다.
  2. 구분자 확인: 데이터가 :로 나뉘어 있는지, ,로 나뉘어 있는지 확인하고 split() 안에 넣어주세요.
  3. 데이터 타입: 파일에서 읽어온 모든 값은 기본적으로 문자열(str)입니다. 숫자가 필요하다면 int(value)로 직접 바꿔주어야 합니다.

 

반응형
Comments