1. 파일 열기 (open())
- open() 함수를 사용하여 파일을 엽니다. 이 함수는 파일 객체를 반환합니다.
# file 입출력
import os
print(os.getcwd()) # 현재 작업하고 있는 모듈의 경로명 반환
# mode='r(read)','w(write)','a(append)','b(binary)','t(text)'
# 파일을 읽기 모드로 열기
file = open("파일 경로", "r")
# 파일을 쓰기 모드로 열기
file = open("파일 경로", "w")
# 파일을 추가 모드로 열기
file = open("파일 경로", "a")
"r": 읽기 모드 (기본값)
"w": 쓰기 모드
"a": 추가 모드 (파일 끝에 내용을 추가)
2. 파일 읽기 (read())
read() 함수를 사용하여 파일을 읽습니다.
content = file.read() # 파일 전체 내용을 하나의 문자열로 읽어옴
print(content)
3. 파일 쓰기 (write())
write() 함수를 사용하여 파일에 내용을 씁니다.
file.write("내용") # 파일에 문자열을 씀
4. 파일 닫기 (close())
파일을 다룬 후에는 반드시 close() 함수를 사용하여 파일을 닫아야 합니다.
file.close()
5. with 문을 활용한 파일 열기
with 문을 사용하면 파일을 열고 닫는 작업을 자동으로 처리할 수 있습니다.
with open("파일 경로", "모드") as file:
# 원하는 대로 파일을 수정하거나 조작하시면 됩니다.
...
# with 블록을 벗어나면 자동으로 파일이 닫힙니다.
+ 예외 처리
파일을 다룰 때는 예외 처리를 해주는 것이 좋습니다.
파일이 존재하지 않거나 접근 권한이 없는 등의 오류를 방지할 수 있습니다.
try:
with open("파일 경로", "모드") as file:
# 파일 조작
...
except Exception as e:
print("파일 처리 에러:", e)
File I/O 예시코드
try:
# 파일로 저장하기
with open('test38.txt', mode='w', encoding='utf-8') as obj1:
obj1.write('파이썬으로 문서 저장\n')
obj1.write('with 구문을 사용\n')
obj1.write('명시적으로 close()를 할 필요가 없다.')
print('저장 성공')
# 파일 읽기
with open('test38.txt', mode='r', encoding='utf-8') as obj2:
print(obj2.read())
print('파일 추가 ---')
f2 = open('test38.txt', mode='a', encoding='utf-8')
f2.write('안녕')
print('추가 성공')
f2.close()
print('저장된 파일 읽기')
f3 = open('test38.txt', mode='r', encoding='utf-8')
print(f3.readline())
print(f3.readline(1), f3.readline(2)) # 한 행의 부분 문자 읽기
lines = f3.readlines() # 모든 행을 읽어 list 타입으로 저장
print(lines)
f3.close()
except Exception as e:
print('파일 처리 오류:', e)