텍스트 파일 읽고 쓰기
파이썬에서 텍스트 파일을 다루는 기본 방법은 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이므로 이 처리 능력은 필수입니다.