IT/파이썬
[파이썬 강의] 파일 입출력, 예외 처리, 객체지향 프로그래밍(OOP) 기초
porodaram
2025. 1. 18. 22:22
반응형
파이썬에서는 파일 입출력을 통해 데이터를 저장하거나 읽어오는 작업을 간단하게 처리할 수 있습니다. 이번 섹션에서는 텍스트 파일 및 CSV 파일 다루기와 관련된 기초 개념과 실습 예제를 소개하겠습니다.
텍스트 파일 읽고 쓰기
open(), read(), write(), close()
파이썬의 open() 함수는 파일을 열어 읽기 또는 쓰기 작업을 수행할 수 있도록 도와줍니다.
파일 쓰기
# 파일 쓰기
data = "Hello, Python!\nWelcome to file I/O."
with open("example.txt", "w") as file:
file.write(data)
설명: "w" 모드는 파일을 쓰기 전용으로 열며, 파일이 존재하지 않으면 생성됩니다.
파일 읽기
# 파일 읽기
with open("example.txt", "r") as file:
content = file.read()
print(content)
설명: "r" 모드는 파일을 읽기 전용으로 엽니다. 파일의 전체 내용을 읽어 문자열로 반환합니다.
파일에 줄 단위로 쓰고 읽기
# 여러 줄 쓰기
lines = ["Line 1", "Line 2", "Line 3"]
with open("lines.txt", "w") as file:
file.writelines(line + "\n" for line in lines)
# 줄 단위로 읽기
with open("lines.txt", "r") as file:
for line in file:
print(line.strip())
결과:
Line 1
Line 2
Line 3
CSV 파일 다루기
CSV(Comma-Separated Values)는 데이터를 표 형식으로 저장하는 텍스트 파일 형식입니다. 파이썬의 csv 모듈을 사용하면 쉽게 다룰 수 있습니다.
CSV 파일 쓰기
import csv
# 데이터 준비
data = [
["Name", "Age", "City"],
["Alice", 30, "New York"],
["Bob", 25, "Los Angeles"],
["Charlie", 35, "Chicago"]
]
# 파일에 쓰기
with open("people.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerows(data)
CSV 파일 읽기
# 파일 읽기
with open("people.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
결과:
['Name', 'Age', 'City']
['Alice', '30', 'New York']
['Bob', '25', 'Los Angeles']
['Charlie', '35', 'Chicago']
7. 예외 처리
파이썬 프로그램은 실행 중 예상치 못한 에러를 만날 수 있습니다. 이를 방지하거나 처리하기 위해 예외 처리 기법을 사용합니다.
에러와 예외의 차이
- 에러(Error): 문법적인 실수로 인해 발생하며, 컴파일 단계에서 발견됩니다.
- 예외(Exception): 실행 중 발생하는 문제이며, 예외 처리를 통해 복구 가능합니다.
try-except 구문
try:
x = int(input("Enter a number: "))
result = 10 / x
print("Result:", result)
except ValueError:
print("Invalid input. Please enter a number.")
except ZeroDivisionError:
print("Cannot divide by zero.")
finally:
print("Execution complete.")
결과:
Enter a number: 0
Cannot divide by zero.
Execution complete.
예외 발생시키기
def validate_age(age):
if age < 0:
raise ValueError("Age cannot be negative!")
try:
validate_age(-5)
except ValueError as e:
print("Error:", e)
결과:
Error: Age cannot be negative!
8. 객체지향 프로그래밍(OOP) 기초
객체지향 프로그래밍(OOP)은 데이터와 해당 데이터를 조작하는 메서드를 하나의 단위로 묶는 프로그래밍 패러다임입니다.
클래스와 객체
- 클래스: 객체를 생성하기 위한 설계도입니다.
- 객체: 클래스의 인스턴스입니다.
클래스 정의 및 인스턴스 생성
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name}.")
# 객체 생성
person = Person("Alice", 30)
print(person.name, person.age)
person.greet()
결과:
Alice 30
Hello, my name is Alice.
상속과 다형성
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
animals = [Dog(), Cat()]
for animal in animals:
print(animal.speak())
결과:
Woof!
Meow!
마무리하며
이번 장에서는 파일 입출력, 예외 처리, 객체지향 프로그래밍의 기초를 학습했습니다. 파일 입출력은 데이터를 저장하고 불러오는 데 필수적이며, 예외 처리는 프로그램의 안정성을 높입니다. 마지막으로, 객체지향 프로그래밍은 파이썬의 강력한 기능 중 하나로, 코드 재사용성과 유지보수성을 크게 향상시킵니다. 다음 단계에서는 이러한 개념을 응용하여 더 복잡한 프로그램을 만들어보세요!
반응형