[Python] 파이썬 파일 입출력에 대해서 알아보자!
파이썬 파일 입출력을 다루는 방법에 대해서 알아보도록 하겠습니다. 파일 입출력은 프로그래밍에서 매우 중요한 기능으로, 데이터를 영구적으로 저장하고 불러올 수 있게 해줍니다.
파일 열기와 닫기
파일을 다루기 위해서는 먼저 파일을 열어야 합니다. 파이썬에서는 'open()' 함수를 사용하여 파일을 열 수 있습니다.
file = open('example.txt', 'r')
여기서 'r'은 읽기 모드를 의미 합니다. 파일을 열었다면, 작업이 끝난 후에는 반드시 파일을 닫아 주서야 합니다.
file.close()
하지만 파일을 열고 닫는 과정을 더 안전하고 편리하게 해주는 'with' 문을 사용하는 것이 좋습니다.
with open('example.txt', 'r') as file:
# 파일 작업 수행
'with' 문을 사용하면 블록이 끝날 때 자동으로 파일이 닫히므로, 실수로 파일을 닫지 않는 상황을 방지할 수 있습니다.
파일읽기
파일을 읽는 방법에는 여러 가지가 있습니다.
1.read() 메서드
'read()' 메서드는 파일의 전체 내용을 문자열로 반환합니다.
with open('example.txt', 'r') as file:
content = file.read()
print(content)
2.readline() 메서드
'readline()' 메서드는 파일에서 한 줄씩 읽어옵니다.
with open('example.txt', 'r') as file:
line = file.readline()
while line:
print(line, end='')
line = file.readline()
3.readlines() 메서드
'readlines()' 메서드는 파일의 모든 줄을 읽어 리스트로 반환합니다.
with open('example.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line, end='')
파일쓰기
파일에 데이터를 쓰는 방법도 여러가지가 있습니다.
1. write() 메서드
'write()' 메서드는 문자열을 파일에 씁니다.
with open('example.txt', 'w') as file:
file.write('Hello, World!\n')
file.write('Welcome to Python!')
2.writelines() 메서드
'writelines()' 메서드는 문자열 리스트를 파일에 씁니다.
lines = ['First line\n', 'Second line\n', 'Third line\n']
with open('example.txt', 'w') as file:
file.writelines(lines)
파일 추가하기
기존 파일에 내용을 추가하려면 'a'(append) 모드를 사용 합니다.
with open('example.txt', 'a') as file:
file.write('This line is appended.\n')
바이너리 파일 다루기
텍스트 파일 외에도 이미지나 음악 파일과 같은 바이너리 파일을 다룰 수 있습니다. 이때는 모드에 'b'를 추가 합니다.
# 바이너리 파일 읽기
with open('image.jpg', 'rb') as file:
image_data = file.read()
# 바이너리 파일 쓰기
with open('new_image.jpg', 'wb') as file:
file.write(image_data)
파일 위치 제어하기
'seek()' 메서드를 사용하면 파일 내에서 읽기/쓰기 위치를 이동할 수 있습니다.
with open('example.txt', 'r') as file:
file.seek(5) # 5번째 바이트로 이동
print(file.read(10)) # 10바이트 읽기
디렉토리 생성
import os
os.mkdir('new_directory')
예외처리
파일 작업 시 발생할 수 있는 예외를 처리하는 것은 중요 합니다.
try:
with open('nonexistent.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
except IOError:
print("파일을 읽는 도중 오류가 발생했습니다.")
결론
파이썬의 파일 입출력 기능은 매우 강력하고 유연합니다. 텍스트 파일부터 바이너리 파일까지 다양한 종류의 파일을 쉽게 다룰 수 있으며, 예외 처리를 통해 안전하게 파일 작업을 수행 할 수 있습니다.
파일 입출력은 데이터 처리, 로깅, 설정 관리 등 다양한 분양에서 활용 됩니다. 이 기본적인 개념들을 잘 이해하고 활용한다면, 더 복잡한 파일 처리 작업도 쉽게 수행 할 수 있을 것 입니다.