Post

파이썬 기본 문법: 파일 처리

파일 읽기와 쓰기, CSV와 JSON 데이터 처리

파일 처리는 데이터를 저장하거나 읽어오는 작업에 필수적입니다. 파이썬에서는 텍스트 파일, CSV 파일, JSON 데이터 등 다양한 파일 형식을 쉽게 다룰 수 있는 기능을 제공합니다. 이번 글에서는 파일 읽기와 쓰기, CSV와 JSON 데이터 처리를 다루겠습니다.

1. 텍스트 파일 처리

1) 파일 열기와 닫기
파일을 열 때는 open() 함수를 사용하고, 작업이 끝난 후에는 close() 메서드로 파일을 닫아야 합니다.

1
2
3
4
# 파일 열기
file = open("example.txt", "w")
file.write("Hello, World!")
file.close()

2) 파일 모드 | 모드 | 설명 | |———|——————————–| | "r" | 읽기 모드 (기본값) | | "w" | 쓰기 모드 (기존 내용 삭제) | | "a" | 추가 모드 (기존 내용 유지) | | "b" | 바이너리 모드 | | "x" | 새 파일 생성 (파일 존재 시 오류)|

3) 파일 읽기와 쓰기

1
2
3
4
5
6
7
8
# 쓰기 모드
with open("example.txt", "w") as file:
    file.write("This is a test file.")

# 읽기 모드
with open("example.txt", "r") as file:
    content = file.read()
    print(content)  # 출력: This is a test file.

2. CSV 파일 처리

CSV(Comma-Separated Values)는 데이터를 열과 행으로 저장하는 간단한 형식입니다. 파이썬의 csv 모듈을 사용하여 CSV 파일을 쉽게 읽고 쓸 수 있습니다.

1) CSV 파일 쓰기

1
2
3
4
5
6
7
8
import csv

# CSV 파일 쓰기
with open("data.csv", "w", newline="") as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(["Name", "Age", "Job"])
    writer.writerow(["Alice", 30, "Engineer"])
    writer.writerow(["Bob", 25, "Data Scientist"])

2) CSV 파일 읽기

1
2
3
4
5
6
7
8
9
10
11
import csv

# CSV 파일 읽기
with open("data.csv", "r") as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)
# 출력:
# ['Name', 'Age', 'Job']
# ['Alice', '30', 'Engineer']
# ['Bob', '25', 'Data Scientist']

3) DictReader와 DictWriter
딕셔너리 형태로 데이터를 다룰 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# CSV 파일 쓰기 (DictWriter)
with open("data.csv", "w", newline="") as csvfile:
    fieldnames = ["Name", "Age", "Job"]
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({"Name": "Alice", "Age": 30, "Job": "Engineer"})
    writer.writerow({"Name": "Bob", "Age": 25, "Job": "Data Scientist"})

# CSV 파일 읽기 (DictReader)
with open("data.csv", "r") as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row)
# 출력:
# {'Name': 'Alice', 'Age': '30', 'Job': 'Engineer'}
# {'Name': 'Bob', 'Age': '25', 'Job': 'Data Scientist'}

3. JSON 데이터 처리

JSON(JavaScript Object Notation)은 데이터를 키-값 쌍으로 저장하는 형식으로, API 및 데이터 교환에 널리 사용됩니다. 파이썬에서는 json 모듈을 사용해 JSON 데이터를 쉽게 다룰 수 있습니다.

1) JSON 파일 쓰기

1
2
3
4
5
6
7
8
9
10
11
import json

# 데이터 쓰기
data = {
    "Name": "Alice",
    "Age": 30,
    "Job": "Engineer"
}

with open("data.json", "w") as jsonfile:
    json.dump(data, jsonfile)

2) JSON 파일 읽기

1
2
3
4
5
6
7
import json

# 데이터 읽기
with open("data.json", "r") as jsonfile:
    data = json.load(jsonfile)
    print(data)
# 출력: {'Name': 'Alice', 'Age': 30, 'Job': 'Engineer'}

3) 문자열을 JSON으로 변환

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# JSON 문자열 -> 파이썬 객체
json_string = '{"Name": "Bob", "Age": 25, "Job": "Data Scientist"}'
data = json.loads(json_string)
print(data)
# 출력: {'Name': 'Bob', 'Age': 25, 'Job': 'Data Scientist'}

# 파이썬 객체 -> JSON 문자열
json_data = json.dumps(data, indent=4)
print(json_data)
# 출력:
# {
#     "Name": "Bob",
#     "Age": 25,
#     "Job": "Data Scientist"
# }

4. 파일 처리 팁

  1. with 문 사용
    파일 작업 시 with 문을 사용하면 자동으로 파일이 닫혀서 안전합니다.
    1
    2
    
    with open("file.txt", "r") as file:
        data = file.read()
    
  2. 예외 처리
    파일 작업 중 오류를 처리하기 위해 try-except를 사용합니다.
    1
    2
    3
    4
    5
    
    try:
        with open("missing_file.txt", "r") as file:
            data = file.read()
    except FileNotFoundError:
        print("파일을 찾을 수 없습니다.")
    
  3. 경로 관리
    여러 디렉토리를 다룰 때는 os 모듈을 활용합니다.
    1
    2
    3
    
    import os
    path = os.path.join("folder", "file.txt")
    print(path)  # 출력: folder/file.txt
    

정리

  • 텍스트 파일: open()을 사용해 파일을 읽고 쓰기.
  • CSV 파일: csv 모듈로 구조화된 데이터를 처리.
  • JSON 데이터: json 모듈로 키-값 데이터 관리.

다음 글 예고:
파이썬의 객체지향 프로그래밍(OOP)을 배우며, “클래스와 객체”의 개념과 활용법을 살펴보겠습니다!

This post is licensed under CC BY 4.0 by the author.