파이썬에서 파일을 읽는 방법 open()
프로그래밍에서 파일을 읽고 쓰는 작업은 아주 기본적이지만 매우 중요한 기능입니다. 예를 들어, 우리가 작성한 데이터를 파일에 저장하고, 저장된 파일을 다시 불러와 활용하는 경우가 많죠. 오늘은 파이썬으로 파일을 어떻게 읽는지 기초부터 차근차근 알려드릴게요.
파이썬에서는 기본적으로 제공하는 open()
함수로 파일을 쉽게 읽을 수 있습니다. 다양한 방식으로 파일을 읽는 방법과 함께 자주 발생하는 오류와 그 해결 방법까지 설명드리겠습니다.
파일 열기와 open()
함수 이해하기
파이썬에서 파일을 읽기 위해서는 먼저 파일을 열어야 합니다. 파일을 열 때는 open()
함수를 사용하는데, open()
함수는 두 가지 주요 인수를 받습니다:
- 파일 경로: 읽고자 하는 파일의 위치입니다.
- 모드: 파일을 여는 방식으로, 읽기(
r
), 쓰기(w
), 추가(a
) 모드 등을 지정할 수 있습니다.
읽기 모드에서 파일을 열 때는 주로 r
모드를 사용하며, 기본값도 r
이기 때문에 생략할 수 있습니다.
file = open("example.txt", "r") # example.txt 파일을 읽기 모드로 열기
위 코드에서 "example.txt"
파일이 프로그램과 같은 디렉터리에 있어야 합니다. 그렇지 않다면 파일 경로를 정확하게 지정해야 합니다.
파일을 한 줄씩 읽기
가장 기본적인 파일 읽기 방법은 한 줄씩 읽는 것입니다. 파일을 열고 readline()
함수를 사용해 한 줄씩 가져오면 됩니다. 예를 들어, 텍스트 파일이 다음과 같이 되어 있다고 해보겠습니다:
example.txt 파일 내용:
안녕하세요
파이썬 파일 읽기 예제입니다
즐거운 프로그래밍!
이 파일을 한 줄씩 읽는 코드는 다음과 같습니다.
# 파일 열기
file = open("example.txt", "r")
# 한 줄씩 읽기
line = file.readline()
while line:
print(line.strip()) # 줄바꿈 문자 제거하고 출력
line = file.readline()
# 파일 닫기
file.close()
이 코드에서는 readline()
함수로 한 줄을 읽고, strip()
메서드를 사용해 줄바꿈 문자를 제거하여 깔끔하게 출력합니다.
Tip: 파일을 연 후에는 꼭 닫아야 합니다. 닫지 않으면 메모리 누수가 발생할 수 있습니다.
file.close()
를 꼭 기억하세요!
파일을 한 번에 모두 읽기
파일이 매우 작다면 파일의 모든 내용을 한 번에 읽어 올 수도 있습니다. 이때는 read()
함수를 사용하면 됩니다.
# 파일 열기
file = open("example.txt", "r")
# 파일 전체 내용 읽기
content = file.read()
print(content)
# 파일 닫기
file.close()
위 코드는 파일의 모든 내용을 문자열로 가져와 content
변수에 저장하고, 이를 출력합니다. 한 번에 파일을 읽기 때문에 큰 파일을 다룰 때는 성능에 주의해야 합니다.
파일을 줄 단위로 모두 읽기 (readlines()
)
파일을 읽을 때 각 줄을 리스트 형태로 가져오고 싶다면 readlines()
함수를 사용할 수 있습니다. 이 함수는 파일의 각 줄을 리스트의 한 요소로 가져옵니다.
# 파일 열기
file = open("example.txt", "r")
# 파일을 줄 단위로 읽어 리스트에 저장
lines = file.readlines()
print(lines)
# 파일 닫기
file.close()
예를 들어, 파일 내용이 세 줄이라면 lines
리스트에는 세 개의 문자열 요소가 들어갑니다. 필요에 따라 각 줄에 접근하여 사용할 수 있어 편리합니다.
파일 읽기와 닫기를 안전하게 - with
문 사용하기
파일을 열고 닫는 과정을 자동으로 관리해주는 with
문을 사용하는 것이 좋습니다. with
문을 사용하면 파일이 자동으로 닫히기 때문에 실수로 파일을 닫지 않는 상황을 방지할 수 있습니다.
# with문으로 파일 읽기
with open("example.txt", "r") as file:
content = file.read()
print(content)
with
블록을 벗어나면 파일이 자동으로 닫힙니다. 매우 편리하고 안전하죠!
파일이 존재하는지 확인하기
파일을 읽기 전에 해당 파일이 존재하는지 확인하는 것이 좋습니다. 파이썬에서는 os
모듈의 path.exists()
함수를 이용해 파일의 존재 여부를 확인할 수 있습니다.
import os
# 파일 경로 정의
file_path = "example.txt"
# 파일 존재 여부 확인
if os.path.exists(file_path):
with open(file_path, "r") as file:
print(file.read())
else:
print(f"{file_path} 파일이 존재하지 않습니다.")
이 코드를 실행하면 "example.txt"
파일이 있을 때만 파일을 읽고, 파일이 없을 경우 경고 메시지를 출력합니다.
예외 처리하기 - try-except
구문
파일을 열 때 발생할 수 있는 오류를 방지하기 위해 예외 처리를 사용하는 것도 좋은 방법입니다. 예를 들어, 파일이 없거나 권한이 없는 경우에는 오류가 발생할 수 있는데, try-except
구문을 사용해 이런 상황에 대한 대비를 할 수 있습니다.
file_path = "example.txt"
try:
with open(file_path, "r") as file:
print(file.read())
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
except PermissionError:
print("파일에 접근할 수 없습니다.")
위 코드는 파일이 없는 경우 FileNotFoundError
예외를, 파일 접근 권한이 없는 경우 PermissionError
예외를 처리합니다.
대용량 파일 다루기
파일 크기가 매우 크다면 파일을 한 번에 읽는 대신, 조금씩 나눠서 읽는 것이 좋습니다. 다음 코드는 파일을 한 번에 1024 바이트(1KB)씩 읽어옵니다.
file_path = "large_file.txt"
try:
with open(file_path, "r") as file:
chunk_size = 1024 # 1KB씩 읽기
while chunk := file.read(chunk_size):
print(chunk)
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
이 코드는 chunk_size
만큼 파일을 읽어서 chunk
변수에 저장하고 출력합니다. 메모리 효율적으로 파일을 다룰 수 있는 방법입니다.
요약
오늘은 파이썬으로 파일을 읽는 여러 가지 방법에 대해 알아보았습니다. open()
함수와 함께 read()
, readline()
, readlines()
함수 등을 사용해 파일을 읽고, with
문으로 안전하게 파일을 다루는 방법도 배웠습니다. 마지막으로 예외 처리와 대용량 파일을 읽는 방법도 다뤘죠.
'파이썬 문법' 카테고리의 다른 글
[python] 파이썬으로 폴더 생성하기 os.mkdir vs os.makedirs (0) | 2024.10.31 |
---|