# 파일 입출력 파이썬에서 파일 입출력은 프로그램 실행 중 데이터를 파일 시스템에 저장하거나 파일에서 데이터를 읽어오는 것을 의미합니다. 이를 통해 프로그램의 데이터를 영구히 저장하고 필요할 때 다시 사용할 수 있습니다. ## 파일 열기 파이썬에서는 open() 함수를 사용하여 파일을 엽니다. ```python f = open("파일 이름", "모드") ``` * 파일 이름: 열고자 하는 파일의 경로를 지정합니다. * 모드: 파일을 어떤 방식으로 열 것인지 지정합니다. - r: 읽기 모드 (기본값) - w: 쓰기 모드 (파일이 존재하면 내용을 덮어씀) - a: 추가 모드 (파일 끝에 내용을 추가) - x: 파일이 존재하지 않을 때만 생성 - b: 바이너리 모드 (이진 데이터 처리) - t: 텍스트 모드 (기본값) > - r+: 읽기와 쓰기를 동시에 수행합니다. > - a+: 파일 끝에 내용을 추가하고 읽기 작업도 수행합니다. > - rb, wb, ab: 바이너리 모드로 파일을 열 때 사용합니다. ## 파일 읽기 ```python f = open("data.txt", "r") contents = f.read() # 파일 전체 내용 읽기 lines = f.readlines() # 파일을 줄 단위로 읽어 리스트에 저장 ``` ## 파일 쓰기 ```python f = open("output.txt", "w") f.write("Hello, world!\n") ``` ## 파일 닫기 ```python f.close() ``` ## with 문을 사용한 안전한 파일 처리 with 문을 사용하면 파일 객체를 생성하고, 블록이 끝날 때 자동으로 파일을 닫아줍니다. 따라서 파일을 닫는 것을 잊어버릴 염려가 없습니다. ```python with open("data.txt", "r") as f: contents = f.read() ``` > 파일을 열 때는 항상 close() 메서드를 사용하여 파일을 닫아주는 것이 좋습니다. > 파일을 쓰기 모드로 열면 기존 내용이 모두 삭제될 수 있습니다. > 바이너리 파일을 다룰 때는 b 옵션을 사용해야 합니다. ```python # 파일 읽기 with open("input.txt", "r") as f: for line in f: print(line, end="") # 파일 쓰기 with open("output.txt", "w") as f: f.write("Hello, world!\n") f.write("This is a new line.") ``` # 파일 메서드 * file.read() * file.readline() * file.readlines() * file.next() * file.seek() * file.tell() * file.truncate() * file.write() * file.writelines() * file.flush() * file.close()