Python Day 13: 파이썬 파일 입출력 - 텍스트 및 CSV 파일 다루기
1. 파일 입출력이란?
안녕하세요! 오늘은 파이썬에서 **파일 입출력(File I/O)**을 다루는 방법을 배워보겠습니다. 파일 입출력은 데이터를 저장하고 불러오는 필수적인 기능이며, 다양한 응용 프로그램에서 사용됩니다. 이번 강의에서는 파일을 여는 방법부터, 읽고(read), 쓰는(write) 방법, 그리고 CSV 파일을 다루는 방법까지 알아보겠습니다. 마지막으로 실습을 통해 텍스트 파일에서 특정 단어를 검색하는 기능을 구현해 보겠습니다.
2. 파일 열기, 읽기, 쓰기 (open, with)
파일 열기 (open 함수)
파이썬에서는 open() 함수를 사용하여 파일을 열 수 있습니다. 파일을 열 때는 모드를 지정해야 합니다.
모드 설명
r | 읽기 모드 (기본값) |
w | 쓰기 모드 (파일이 없으면 생성, 기존 내용 삭제) |
a | 추가 모드 (파일이 없으면 생성, 기존 내용 유지) |
x | 파일 생성 모드 (파일이 존재하면 오류) |
예제 1: 파일 쓰기 (write)
file = open("example.txt", "w")
file.write("안녕하세요! 파일 입출력을 배우고 있습니다.")
file.close()
파일 읽기 (read)
파일에서 데이터를 읽는 방법은 여러 가지가 있습니다.
예제 2: 파일 읽기 (read)
file = open("example.txt", "r")
content = file.read()
print(content)
file.close()
with 문을 활용한 파일 관리
파일을 열고 닫는 과정을 자동으로 처리하려면 with 문을 사용하는 것이 좋습니다.
예제 3: with 문을 활용한 파일 입출력
with open("example.txt", "r") as file:
content = file.read()
print(content)
3. 텍스트 파일과 CSV 파일 다루기
텍스트 파일에서 여러 줄 읽기
한 줄씩 읽는 방법은 readline() 또는 readlines()를 사용할 수 있습니다.
예제 4: readline()과 readlines() 사용하기
with open("example.txt", "r") as file:
for line in file:
print(line.strip())
CSV 파일 다루기 (csv 모듈 활용)
CSV(Comma-Separated Values) 파일은 데이터를 표 형식으로 저장할 때 많이 사용됩니다.
예제 5: CSV 파일 쓰기
import csv
with open("data.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["이름", "나이", "도시"])
writer.writerow(["철수", 25, "서울"])
writer.writerow(["영희", 22, "부산"])
예제 6: CSV 파일 읽기
import csv
with open("data.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
출력:
['이름', '나이', '도시']
['철수', '25', '서울']
['영희', '22', '부산']
4. 실습: 텍스트 파일에서 특정 단어 검색
문제 설명
사용자가 입력한 단어가 텍스트 파일에 몇 번 등장하는지 검색하는 프로그램을 작성합니다.
코드
def search_word_in_file(filename, word):
count = 0
with open(filename, "r") as file:
for line in file:
count += line.lower().count(word.lower())
return count
filename = "example.txt"
word = input("검색할 단어를 입력하세요: ")
count = search_word_in_file(filename, word)
print(f"'{word}' 단어가 {count}번 등장합니다.")
출력 예시
검색할 단어를 입력하세요: 파이썬
'파이썬' 단어가 3번 등장합니다.
5. 실습 과제
1. 파일에서 특정 문자 수 세기
- 텍스트 파일에서 특정 문자가 몇 번 등장하는지 세는 프로그램을 작성하세요.
def count_character(filename, char):
count = 0
with open(filename, "r") as file:
for line in file:
count += line.count(char)
return count
print(count_character("example.txt", "a"))
2. CSV 파일에서 특정 데이터 검색하기
- CSV 파일에서 특정 사용자의 정보를 검색하는 프로그램을 작성하세요.
import csv
def search_user(filename, name):
with open(filename, "r") as file:
reader = csv.reader(file)
for row in reader:
if name in row:
return row
return "사용자를 찾을 수 없습니다."
print(search_user("data.csv", "철수"))
3. 텍스트 파일 단어 개수 세기
- 파일에서 전체 단어 개수를 계산하는 프로그램을 작성하세요.
def count_words(filename):
with open(filename, "r") as file:
text = file.read()
words = text.split()
return len(words)
print(count_words("example.txt"))
오늘 강의에서는 **파일 입출력(File I/O)**의 기본 개념을 익히고, open()을 활용하여 텍스트 파일과 CSV 파일을 읽고 쓰는 방법을 배웠습니다. 파일을 다루는 기술은 실제 프로젝트에서 데이터를 저장하거나 불러올 때 반드시 필요한 핵심 개념이므로, 이번 실습을 통해 확실히 익혀두세요.
파일 입출력은 단순히 데이터를 저장하는 것을 넘어, 데이터 분석, 로그 관리, 설정 파일 처리 등 다양한 분야에서 활용됩니다. 실습을 통해 직접 코드를 작성해 보고, 파일을 다루는 다양한 방식을 익혀보세요.
다음 강의에서는 모듈과 패키지를 학습하며, 코드의 재사용성과 유지보수성을 높이는 방법을 배워보겠습니다. 🚀 궁금한 점이나 피드백이 있다면 댓글로 남겨주세요. 여러분의 학습을 응원합니다! 😊
Python Day 12: 함수 심화 - 기본값, 키워드 인자, 가변 인자 활용하기
1. 함수 심화 개념 소개 안녕하세요! 오늘은 파이썬 함수의 심화 개념을 배워보겠습니다. 기본적인 함수 정의와 호출을 익혔다면, 이제는 더 유연하게 함수를 사용할 수 있는 방법을 알아볼 차
nerdcodex.tistory.com
Python Day 11: 파이썬 함수의 개념과 기본 사용법 - 코드의 재사용과 효율적인 설계
1. 함수란 무엇인가요? 안녕하세요! 오늘은 파이썬의 핵심 개념 중 하나인 **함수(Function)**에 대해 배워보겠습니다. 함수는 특정 작업을 수행하는 코드 블록으로, 한 번 정의하면 여러 번 재사용
nerdcodex.tistory.com
Python Day 10: 파이썬 예외 처리 - 오류를 안전하게 관리하는 방법
1. 예외 처리란 무엇인가요?안녕하세요! 오늘은 파이썬의 중요한 기능 중 하나인 **예외 처리(Exception Handling)**에 대해 알아보겠습니다. 프로그래밍에서는 다양한 오류가 발생할 수 있으며, 이러
nerdcodex.tistory.com