[Python]파일 입출력 : 텍스트 파일 읽고 쓰기

Python은 파일 입출력을 매우 쉽게 처리할 수 있도록 다양한 기능을 제공합니다. 파일 입출력은 데이터를 저장하고 읽어오는 기본적인 작업으로, 거의 모든 프로그램에서 중요한 역할을 합니다. 이번 글에서는 Python으로 텍스트 파일 읽고 쓰기에 대해 자세히 알아보겠습니다.

1. 파일 열기와 닫기

Python에서 파일을 열고 닫는 기본적인 방법은 open() 함수와 close() 메서드를 사용하는 것입니다. open() 함수는 파일을 열고, close() 메서드는 파일을 닫습니다.

# 파일 열기
file = open("example.txt", "r")

# 파일 작업 수행

# 파일 닫기
file.close()

open() 함수는 두 개의 인수를 받습니다. 첫 번째 인수는 파일의 이름이고, 두 번째 인수는 파일을 여는 모드입니다. 파일 모드는 다음과 같습니다:

  • "r": 읽기 모드
  • "w": 쓰기 모드 (기존 파일을 덮어씀)
  • "a": 추가 모드 (파일 끝에 내용을 추가)
  • "b": 바이너리 모드

2. 파일 읽기

파일을 읽기 위해서는 "r" 모드로 파일을 열어야 합니다. Python에서는 파일을 읽는 여러 가지 방법을 제공합니다.

2.1 read() 메서드

read() 메서드는 파일의 전체 내용을 하나의 문자열로 읽습니다.

file = open("example.txt", "r")
content = file.read()
print(content)
file.close()

2.2 readline() 메서드

readline() 메서드는 파일에서 한 줄씩 읽습니다.

file = open("example.txt", "r")
line = file.readline()
while line:
print(line, end="")
line = file.readline()
file.close()

2.3 readlines() 메서드

readlines() 메서드는 파일의 모든 줄을 리스트로 읽습니다.

file = open("example.txt", "r")
lines = file.readlines()
for line in lines:
print(line, end="")
file.close()

3. 파일 쓰기

파일에 데이터를 쓰기 위해서는 "w" 또는 "a" 모드로 파일을 열어야 합니다. "w" 모드는 기존 파일의 내용을 지우고 새로 쓰기 시작하며, "a" 모드는 기존 내용 뒤에 추가합니다.

3.1 write() 메서드

write() 메서드는 파일에 문자열을 씁니다.

file = open("example.txt", "w")
file.write("Hello, World!\n")
file.write("This is a test.\n")
file.close()

3.2 writelines() 메서드

writelines() 메서드는 문자열의 리스트를 파일에 씁니다.

lines = ["Hello, World!\n", "This is a test.\n"]
file = open("example.txt", "w")
file.writelines(lines)
file.close()

4. with 문 사용하기

파일을 열고 닫는 작업을 더 간편하게 하기 위해 Python에서는 with 문을 사용할 수 있습니다. with 문을 사용하면 블록이 끝날 때 자동으로 파일이 닫힙니다.

with open("example.txt", "r") as file:
content = file.read()
print(content)

with 문은 코드의 가독성을 높이고, 파일을 자동으로 닫아주기 때문에 파일 입출력 작업에서 매우 유용합니다.

5. 예제: 파일 복사

파일 입출력 기능을 사용하여 파일을 복사하는 예제를 만들어 보겠습니다.

def copy_file(source, destination):
with open(source, "r") as src_file:
content = src_file.read()
with open(destination, "w") as dest_file:
dest_file.write(content)

source_file = "source.txt"
destination_file = "destination.txt"

copy_file(source_file, destination_file)
print(f"'{source_file}' 파일이 '{destination_file}'로 복사되었습니다.")

이 예제는 source.txt 파일을 읽어서 destination.txt 파일로 복사합니다.

6. 예제: 학생 성적 관리

학생들의 성적을 파일로 저장하고 읽어오는 프로그램을 만들어 보겠습니다. 각 학생의 이름과 성적을 파일에 저장하고, 파일에서 읽어와서 평균 성적을 계산하는 프로그램입니다.

def save_scores(filename, scores):
with open(filename, "w") as file:
for name, score in scores.items():
file.write(f"{name},{score}\n")

def load_scores(filename):
scores = {}
with open(filename, "r") as file:
lines = file.readlines()
for line in lines:
name, score = line.strip().split(",")
scores[name] = int(score)
return scores

def calculate_average(scores):
total = sum(scores.values())
count = len(scores)
return total / count

scores = {
"Alice": 85,
"Bob": 92,
"Charlie": 78,
"David": 90
}

filename = "scores.txt"
save_scores(filename, scores)

loaded_scores = load_scores(filename)
average_score = calculate_average(loaded_scores)

print(f"학생들의 평균 성적은 {average_score:.2f}점입니다.")

이 프로그램은 학생들의 성적을 scores.txt 파일에 저장하고, 파일에서 성적을 읽어와서 평균 성적을 계산하여 출력합니다.

결론

Python은 파일 입출력을 간단하고 효율적으로 처리할 수 있는 다양한 기능을 제공합니다. open() 함수와 with 문을 사용하여 파일을 열고 닫으며, read(), readline(), readlines(), write(), writelines() 메서드를 사용하여 파일을 읽고 쓸 수 있습니다. 파일 입출력 기능을 잘 활용하면 데이터를 저장하고 불러오는 작업을 손쉽게 처리할 수 있으며, 이를 통해 다양한 응용 프로그램을 작성할 수 있습니다. 이번 글에서 소개한 기본적인 파일 입출력 방법을 익히고, 실습 예제를 통해 더 많은 파일 입출력 작업을 연습해보세요. Python을 활용하여 효율적이고 강력한 프로그램을 작성할 수 있을 것입니다.

이 게시물이 얼마나 유용했습니까?

평가하려면 별표를 클릭하세요.

평균 평점 5 / 5. 투표 수: 22

지금까지 투표 한 사람이 없습니다. 가장 먼저 게시물을 평가해 보세요.

Leave a Comment

error: 우클릭 할 수 없습니다.