본문 바로가기

Python/Basic

[파이썬] File I/O

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)