파이썬 기본 문법: 파일 처리
파일 읽기와 쓰기, 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. 파일 처리 팁
- with 문 사용
파일 작업 시with
문을 사용하면 자동으로 파일이 닫혀서 안전합니다.1 2
with open("file.txt", "r") as file: data = file.read()
- 예외 처리
파일 작업 중 오류를 처리하기 위해try-except
를 사용합니다.1 2 3 4 5
try: with open("missing_file.txt", "r") as file: data = file.read() except FileNotFoundError: print("파일을 찾을 수 없습니다.")
- 경로 관리
여러 디렉토리를 다룰 때는os
모듈을 활용합니다.1 2 3
import os path = os.path.join("folder", "file.txt") print(path) # 출력: folder/file.txt
정리
- 텍스트 파일:
open()
을 사용해 파일을 읽고 쓰기. - CSV 파일:
csv
모듈로 구조화된 데이터를 처리. - JSON 데이터:
json
모듈로 키-값 데이터 관리.
다음 글 예고:
파이썬의 객체지향 프로그래밍(OOP)을 배우며, “클래스와 객체”의 개념과 활용법을 살펴보겠습니다!