파이썬에서 파일 입출력은 파일과 데이터를 읽고 쓰는 작업을 수행하는 데 사용됩니다. 파일 입출력 작업은 파일을 열고, 읽고, 쓰고, 닫는 등 여러 작업을 포함합니다. 파이썬에서는 파일 처리를 위한 여러 방법을 제공합니다.
1. 파일 열기 (Opening Files)
파일을 열기 위해서는 open() 함수를 사용합니다. open() 함수는 파일의 경로와 파일을 열 때 사용할 모드를 지정합니다.
# 파일 열기 file = open('example.txt', 'r') # 'r': 읽기 모드 |
2. 파일 모드 (File Modes)
파일을 열 때 사용할 수 있는 모드는 여러 가지가 있습니다:
'r' | 읽기 모드 | (파일이 존재해야 함) |
'w' | 쓰기 모드 | (파일이 존재하면 내용을 덮어씀, 존재하지 않으면 새로 생성) |
'a' | 추가 모드 | (파일이 존재하면 내용 뒤에 추가, 존재하지 않으면 새로 생성) |
'b' | 바이너리 모드 | (예: 'rb', 'wb', 'ab' 등) |
'x' | 배타적 생성 모드 | (파일이 존재하면 FileExistsError 발생) |
3. 파일 읽기 (Reading Files)
파일을 읽는 방법에는 여러 가지가 있습니다.
read()
: 파일 전체를 읽어 문자열로 반환합니다.
file = open('example.txt', 'r') content = file.read() print(content) file.close() |
readline()
: 파일에서 한 줄을 읽어 반환합니다.
file = open('example.txt', 'r') line = file.readline() print(line) file.close() |
readlines()
: 파일의 모든 줄을 읽어 리스트로 반환합니다.
file = open('example.txt', 'r') lines = file.readlines() print(lines) file.close() |
4. 파일 쓰기 (Writing to Files)
파일에 데이터를 쓰는 방법입니다.
write()
: 문자열을 파일에 씁니다. 파일이 열릴 때 모드가 'w' 또는 'a'여야 합니다.
file = open('example.txt', 'w') file.write("Hello, World!\n") file.write("This is a new line.") file.close() |
writelines()
: 문자열의 리스트를 파일에 씁니다. 각 문자열은 파일의 한 줄로 추가됩니다.
lines = ["First line\n", "Second line\n", "Third line\n"] file = open('example.txt', 'w') file.writelines(lines) file.close() |
5. 파일 닫기 (Closing Files)
파일 작업이 끝나면 반드시 파일을 닫아야 합니다. 이는 자원을 해제하고 파일의 변경 사항을 저장합니다.
file = open('example.txt', 'r') content = file.read() file.close() |
6. 파일 열기와 닫기를 자동으로 처리하기 (Context Manager)
with 문을 사용하면 파일을 열고 자동으로 닫을 수 있습니다. 이는 코드가 간결하고 오류를 줄이는 데 도움을 줍니다.
with open('example.txt', 'r') as file: content = file.read() print(content) # 파일이 자동으로 닫힘 |
7. 파일 바이너리 모드 (Binary Mode)
파일을 바이너리 모드로 열어 읽거나 쓸 수 있습니다. 이는 텍스트가 아닌 데이터(예: 이미지 파일)를 처리할 때 사용합니다.
# 바이너리 파일 읽기 with open('example.bin', 'rb') as file: content = file.read() print(content) # 바이너리 파일 쓰기 with open('example.bin', 'wb') as file: file.write(b'\x00\x01\x02\x03') |
8. 파일 경로와 이름 (File Paths and Names)
파일 경로를 다루는 데는 os 모듈과 pathlib 모듈이 유용합니다.
os 모듈
import os # 현재 작업 디렉토리 print(os.getcwd()) # 파일 경로 결합 file_path = os.path.join('folder', 'example.txt') |
pathlib 모듈
from pathlib import Path # 현재 작업 디렉토리 current_path = Path.cwd() print(current_path) # 파일 경로 결합 file_path = Path('folder') / 'example.txt' |
9. 파일 존재 여부 확인
파일이 존재하는지 확인하려면 os.path.exists() 또는 Path.exists()를 사용할 수 있습니다.
import os if os.path.exists('example.txt'): print("File exists") else: print("File does not exist") # 또는 pathlib 모듈을 사용할 경우 from pathlib import Path file_path = Path('example.txt') if file_path.exists(): print("File exists") else: print("File does not exist") |
이와 같은 파일 입출력 작업은 파일 시스템과 상호작용하여 데이터를 읽고 쓸 수 있는 강력한 도구입니다. 파일을 열고, 읽고, 쓰는 방법을 잘 이해하면 다양한 파일 기반 작업을 효율적으로 수행할 수 있습니다.
'파이썬 문법' 카테고리의 다른 글
파이썬에서 문자열 인덱싱 2. (0) | 2024.08.19 |
---|---|
파이썬에서 문자열 인덱싱. (0) | 2024.08.18 |
파이썬에서 함수의 다양한 특성과 기능 (0) | 2024.08.15 |
파이썬 제어구조 (0) | 2024.08.13 |
파이썬에서 클래스 핵심 개념 (0) | 2024.08.12 |