여태까지 공부한 내용들에서 입력을 받을 때는 사용자가 직접 입력하는 방식을 사용하고, 출력 할 때는 화면에 출력을 했습니다.
그러나 입출력 방식이 꼭 이렇게만 있는 것은 아닙니다.
이번 시간에는 파일을 통해서 입출력 하는 방식에 대해 공부해 보겠습니다.
파일을 새로 만들고 프로그램에서 나온 결과값을 역시 새 파일로 출력해 보겠습니다.
또한 파일에 기록된 내용을 읽고, 새로운 내용을 추가하는 방법도 공부해 보겠습니다.
파이썬 입출력
파일 읽고 쓰기
파일 생성
다음 코드를 실행해 보겠습니다.
file = open("신규파일.txt", "w")
file.close()
위 코드를 실행해 보면 프로그램이 실행된 디렉토리에 파일이 하나 생성 된 것을 확인 할 수 있습니다.

위 코드에서 사용된 open 은 내장함수로 파일을 생성하기 위해 사용되었습니다.
open 함수는 아래 형식처럼 ‘파일 이름’과 ‘파일 열기 모드’를 입력받고 결과값으로 파일 객체를 리턴하게 됩니다.
파일 객체 = open(파일 이름, 파일 열기 모드)
파일 열기 모드
파일 열기 모드에는 여러가지가 있습니다.
- r – 읽기 모드 : 파일을 읽기만 할때 사용됩니다.
- w – 쓰기 모드 : 파일에 내용을 기록하고자 할 때 사용됩니다.
- a – 추가 모드 : 파일의 마지막에 새로운 내용을 추가 하고자 할 때 사용됩니다.
주의 해야 할 건 파일을 쓰기 모드로 열게 되면 이미 파일이 존재할 경우에 원래의 내용은 모두 없어지고, 파일이 존재하지 않는다면 새로운 파일이 생성된다는 것입니다.
위 예제로 나온 코드는 해당 폴더에 파일이 없는 상태에서 신규파일.txt 를 쓰기 모드 ‘w’로 열었기 때문에 신규파일.txt 라는 이름의 새로운 파일이 현재 폴더에 생성된 것입니다.
만일 신규파일.txt 를 다른 폴더에 생성하려 한다면 아래처럼 하시면 됩니다.
file = open("D:/test/신규파일.txt", "w")
file.close()
하지만 위처럼 다른 폴더를 선택해서 파일을 만들려고 한다면 해당 경로에 폴더는 이미 생성이 되어있어야 오류가 안날겁니다.
그리고 위 코드에서 사용되는 file.close() 명령은 열려 있는 파일의 객체를 닫아 주라는 의미입니다.
이 문장은 생략해도 되긴 합니다.
왜냐면 파이썬에서는 프로그램을 종료할 때 파이썬 프로그램이 열려있는 파일의 객체를 자동을 닫아주기 때문입니다.
그러나 그렇다고 해도 close()를 사용해서 직접 열려있는 파일을 닫아 주는 것이 좋습니다.
이유는 쓰기모드로 열었던 파일을 닫지 않고 다시 사용하려고 한다면 오류가 발생할 수 있기 때문입니다.
파일 경로와 슬래시(/)
보통 윈도우에서 파일 경로를 표현 할 때는 경로에 역슬래시(\) 를 사용해 D:\ 식으로 표현을 합니다.(실제 화면상에서는 \ 로 보이기도 합니다.)
하지만 위 코드에서는 슬래시(/)를 사용해 D:/test/신규파일.txt 라고 표현 했습니다.
만약 역슬래시를 사용해 경로를 표현하고자 한다면 D:\\test\\신규파일.txt 처럼 역슬래시 2개를 연달아 붙여서 사용합니다.
또 다른 방법으로는 r”D:\test\신규파일.txt” 이라고 표현을 해주면 문자열 앞에 위치한 r 문자(Raw String)와 문자열이 만나 경로를 표현해 주게 됩니다.
이런식으로 표현을 안 해주면 “D:\new\test\신규파일.txt” 처럼 \n 이스케이프 문자가 있을 경우에 줄바꿈 문자로 잘못 판단 되어 엉뚱한 파일 경로로 판단할수 있기 때문입니다.
이번 시간에는 파일 입출력 중 파일 읽고 쓰기의 첫번째 시간으로
파일을 생성하는 방법에 대해 공부해 봤습니다.
다음 시간에는 파일을 쓰기 모드로 열어서 내용을 쓰는 방법에 대해 공부해 보도록 하겠습니다.
이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
