Python 입출력 및 데이터 처리: 파일 다루기부터 데이터 변환까지!
Python을 사용하다 보면 데이터를 입력받고 출력하는 과정이 필수적으로 필요해요.
예를 들어, 사용자로부터 입력을 받고, 파일을 읽고 쓰고, 데이터를 변환하는 작업 등이 포함돼요.
이 글에서는 입출력(I/O) 처리와 데이터 변환에 집중해서 정리해볼게요!
(기초 문법, 자료형, 함수, 클래스 등과 겹치지 않도록) 😊
1. 표준 입력과 출력 (Standard I/O)
🔹 표준 출력 (print
)
print()
함수는 데이터를 출력하는 가장 기본적인 방법이에요.
print("Hello, Python!") # Hello, Python! 출력
print(10 + 5) # 15 출력
💡
print()
함수에서 여러 개의 값을 출력할 때 쉼표(,)로 구분하면 자동으로 공백이 추가돼요.
print("이름:", "Alice", "나이:", 25)
# 출력: 이름: Alice 나이: 25
🔹 줄바꿈 없이 출력하기
기본적으로 print()
는 출력 후 자동으로 줄바꿈이 돼요.
줄바꿈을 원하지 않으면 end=""
옵션을 사용하면 돼요.
print("Hello", end=" ")
print("Python!")
출력 결과:
Hello Python!
🔹 표준 입력 (input
)
사용자로부터 데이터를 입력받을 때는 input()
을 사용해요.
name = input("이름을 입력하세요: ")
print(f"안녕하세요, {name}님!")
💡
input()
은 항상 문자열(String)로 값을 반환해요!
숫자를 입력받으려면int()
또는float()
로 변환해야 해요.
age = int(input("나이를 입력하세요: ")) # 문자열을 정수(int)로 변환
print(f"내년 나이는 {age + 1}살입니다.")
2. 파일 입출력 (File I/O)
Python에서는 open()
함수를 사용해 파일을 읽고 쓰는 작업을 할 수 있어요.
파일객체 = open("파일경로", "모드")
모드 | 설명 |
---|---|
"r" |
읽기 모드 (기본값) |
"w" |
쓰기 모드 (기존 파일 삭제 후 새로 생성) |
"a" |
추가 모드 (기존 내용 유지하면서 추가) |
"b" |
바이너리 모드 (이미지, 동영상 등) |
🔹 파일 쓰기 (write
)
파일에 데이터를 저장하려면 "w"
모드로 열고 write()
를 사용하면 돼요.
with open("example.txt", "w") as file:
file.write("Hello, Python!\n")
file.write("파일 입출력 배우기")
💡
with open()
을 사용하면 파일을 자동으로 닫아줘서 안전해요!
별도로file.close()
를 호출하지 않아도 돼요.
🔹 파일 읽기 (read
)
파일의 내용을 읽을 때는 "r"
모드를 사용해요.
with open("example.txt", "r") as file:
content = file.read()
print(content)
🔹 한 줄씩 읽기 (readline
)
파일에서 한 줄씩 읽고 싶다면 readline()
을 사용하면 돼요.
with open("example.txt", "r") as file:
line = file.readline()
print(line)
🔹 여러 줄 읽기 (readlines
)
파일의 모든 줄을 리스트(List)로 가져오려면 readlines()
를 사용해요.
with open("example.txt", "r") as file:
lines = file.readlines()
for line in lines:
print(line.strip()) # 줄 끝의 개행 문자 제거
3. CSV 파일 다루기 (데이터 처리)
CSV(Comma-Separated Values) 파일은 데이터를 저장할 때 많이 사용돼요.
Python에서는 csv
모듈을 이용해 CSV 파일을 쉽게 다룰 수 있어요.
🔹 CSV 파일 쓰기 (csv.writer
)
import csv
data = [
["이름", "나이", "도시"],
["Alice", 25, "Seoul"],
["Bob", 30, "Busan"]
]
with open("people.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerows(data)
💡
newline=""
을 사용하면 자동으로 줄바꿈이 생기는 문제를 방지할 수 있어요!
🔹 CSV 파일 읽기 (csv.reader
)
import csv
with open("people.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
출력 결과:
['이름', '나이', '도시']
['Alice', '25', 'Seoul']
['Bob', '30', 'Busan']
4. JSON 파일 다루기
JSON(JavaScript Object Notation)은 데이터를 저장하고 교환하는데 많이 사용하는 포맷이에요.
Python에서는 json
모듈을 사용해 JSON 데이터를 쉽게 다룰 수 있어요.
🔹 JSON 파일 저장 (json.dump
)
import json
data = {"name": "Alice", "age": 25, "city": "Seoul"}
with open("data.json", "w") as file:
json.dump(data, file, ensure_ascii=False, indent=4)
💡
ensure_ascii=False
를 설정하면 한글도 정상적으로 저장돼요!
🔹 JSON 파일 불러오기 (json.load
)
import json
with open("data.json", "r") as file:
data = json.load(file)
print(data) # {'name': 'Alice', 'age': 25, 'city': 'Seoul'}
😊 마무리하며...
Python에서는 데이터를 다루는 다양한 방법이 있어요!
표준 입출력, 파일 다루기, CSV와 JSON 데이터 처리까지 익혀두면 실무에서도 매우 유용해요.
이제 직접 실습해 보면서 활용해볼까요? 🚀