1. 파일 열기
open( ) 함수를 사용하여 파일을 열 수 있다.
파일 이름과 모드를 인자로 받는다.
file_object = open(file_name, mode)
# file_name: 열고자 하는 파일의 이름이나 경로
# mode: 파일을 여는 방식을 지정
읽기 모드 r 파일을 읽기 전용으로 연다. 파일이 존재하지 않으면 오류 발생
쓰기모드 w | 파일이 이미 존재하면 내용을 모두 삭제하고, 존재하지 않으면 새 파일 생성 |
추가 모드 a | 파일의 끝에 새로운 내용 추가. 파일이 존재하지 않으면 새 파일 생성 |
읽기와 쓰기 모드 r+ | 파일이 존재하지 않으면 오류 발생 |
이진 모드 b | 파일을 이진 모드로 열 때 사용 (보통 다른 모드와 함께 사용) |
텍스트 모드 t | 파일을 텍스트 모드로 연다. |
읽기 / 쓰기 모드 + | 파일을 읽고 쓰기 위해서 연다. ( r+, w+, a+) r+ 는 파일이 존재해야 하고 w+ 와 a+는 파일이 없으면 새로 생성한다. |
2. 파일 읽기
2.1 전체 파일 읽기
read( ) : 파일의 전체 내용을 하나의 문자열로 반환한다.
content = f.read()
print(content)
2.2 한 줄씩 읽기
readline( ) : 파일에서 한 줄을 읽고, 문자열로 반환하다. 파일의 끝에 도달하면 빈 문자열을 반환한다.
line = f.readline()
while line:
print(line, end='')
line = f.readline()
2.3 모든 줄 리스트로 읽기
readlines( ) : 파일의 모든 줄을 읽고, 각 줄을 리스트의 항목으로 반환한다.
lines = f.readlines()
for line in lines:
print(line, end='')
3. 파일 쓰기
파일 쓰기는 파일을 생성하거나 기존 파일의 내용을 변경할 때 사용된다.
파일 쓰기 작업을 위해 주로 사용되는 모드는 'w', 'a', 'x'입니다.
3.1 write( )
문자열을 파일에 쓰는 데 사용됩니다.
쓰고자 하는 문자열을 인자로 받고, 그 문자열을 파일에 직접 쓴다.
write( )는 쓴 문자열의 길이를 반환한다.
file = open('example.txt', 'w') # 'w' 모드로 파일 열기
file.write('Hello, Python!\\n') # 파일에 문자열 쓰기
file.close() # 파일 닫기
3.2 writelines( )
문자열의 리스트를 파일에 쓰는 데 사용
자동으로 줄 바꿈을 추가하지 않으므로, 줄 바꿈이 필요한 경우 문자열에 직접 포함시켜야 한다.
lines = ['첫 번째 줄\\n', '두 번째 줄\\n', '세 번째 줄\\n']
file = open('example.txt', 'w') # 'w' 모드로 파일 열기
file.writelines(lines) # 문자열 리스트를 파일에 쓰기
file.close() # 파일 닫기
4. 파일 닫기
파일에 대한 모든 작업을 끝내면 반드시 파일을 닫아야 한다.
close( ) 함수를 사용하여 수행되며, 파일을 닫지 않으면 데이터 손실의 문제 등 다양한 문제가 발생할 수 있다.
f = open('example.txt', 'w') # 쓰기 모드로 파일을 열어 새로운 내용을 쓸 준비를 함
f.write('Hello, world!\\n') # 파일에 문자열을 쓰고, 줄바꿈 문자를 추가
f.close() # 파일 닫기
5. with 문을 사용한 파일 작업
with 문을 사용하면 파일을 열고, 작업을 수행한 후 자동으로 파일을 닫을 수 있다.
with 문을 사용하여 파일을 열 때는 open() 함수를 함께 사용한다.
with 블록 내에서 파일 객체를 사용하여 파일 읽기, 쓰기 등의 작업을 수행할 수 있다.
with 블록이 끝나면, 파이썬이 자동으로 파일을 닫아 준다.
with open('example.txt', 'r') as f:
content = f.read()
print(content)
# 끝나면 자동으로 닫아준다.
5.1 with문을 사용한 파일 여러 개 다루기
with 문을 사용하여 여러 파일을 동시에 다룰 수도 있다.
with 문에 여러 파일 객체를 열기 위한 open() 함수를 콤마로 구분하여 넣는다.
with open('input.txt', 'r') as input_file, open('output.txt', 'w') as output_file:
content = input_file.read()
output_file.write(content.upper())
'Language > Python' 카테고리의 다른 글
[Python] 모듈과 패키지 (0) | 2024.04.27 |
---|---|
[Python] 예외 처리 (0) | 2024.04.27 |
[Python] 함수 (0) | 2024.04.24 |
[Python] 패킹과 언패킹 (0) | 2024.04.24 |
[Python] 집합 (0) | 2024.04.24 |