Python 강좌 : 제 25강 - 파일 읽기 & 쓰기
파일 읽기 & 쓰기(File Read & Write)
파일 열기 함수(open)
는 대부분의 파일을 읽고 쓰기가 가능한 함수입니다.
파일 열기 함수는 주로 텍스트 파일 포맷의 형태를 대상으로 사용합니다.
open
과 close
를 이용하여 텍스트 파일을 다룰 수 있습니다.
텍스트 파일 열기 & 닫기
텍스트 파일을 작성하기 위해선 저장될 경로를 미리 할당해야 합니다.
파일 열기 함수(open)
을 사용해 파일을 작성할 수 있습니다.
변수 = open(경로, 모드)
을 의미합니다.
경로
는 파일을 작성하거나 읽을 경로를 의미합니다.
모드
는 파일을 어떻게 사용할지를 설정합니다.
파일 열기 함수 모드 플래그
플래그 | 의미 |
---|---|
r | 읽기 전용(기본값) |
w | 쓰기 전용 |
a | 내용 추가 |
t | 텍스트 모드(기본값) |
b | 이진 모드 |
모드는 크게 r
, w
, a
의 세 가지와 t
, b
의 두 가지로 성격을 나눌 수 있습니다.
파일을 어떻게 사용할지 선택(r, w, a)하고, 어떤 방식으로 다룰지 선택(t, b)하게 됩니다.
어떻게 사용할지는 필수 값이며, 어떤 방식으로 다룰지는 옵션 값입니다.
예를 들어, mode="r"
로 사용한다면, 텍스트 파일로 읽는다는 의미가 되며, mode="rb"
는 이진 파일로 읽는다는 의미가 됩니다.
예제는 open("d:/textfile.txt", mode="r")
로 사용하므로, D 드라이브
의 textfile.txt
을 읽습니다.
변수명.close()
를 사용하여 텍스트 파일의 작성을 종료합니다.
텍스트 파일의 작성을 종료하지 않으면, 파일이 열어진 상태가 유지됩니다.
프로그램이 종료될 때 텍스트 파일이 자동으로 닫아지지만, 닫지 않고 종료할 경우 오류가 발생할 수 있습니다.
파일 자동 닫기
파일을 읽거나 쓸 때, close
메서드를 사용해 명시적으로 닫아야합니다.
하지만, with
키워드를 사용한다면 탭 구문을 벗어낫을 때 자동으로 파일이 닫힙니다.
as
키워드는 열린 파일의 변수명을 설정합니다.
탭 간격으로 파일이 언제 열리고 닫히는지 확인할 수 있으므로, 코드를 더 효율적으로 관리할 수 있습니다.
텍스트 파일 쓰기
- 결과
- START
Python
YUNDAEHEE
076923
END
예제는 open("d:/textfile.txt", mode="w")
로 사용하므로, textfile.txt
형태로 D 드라이브
에 저장됩니다.
변수명.write("내용")
을 사용하면 텍스트 파일
에 단일 문자열을 작성할 수 있습니다.
변수명.writelines(반복 가능한 객체)
을 사용하면 텍스트 파일
에 문자열 목록을 순차적으로 작성할 수 있습니다.
텍스트 파일 한 줄씩 읽기
- 결과
- [‘START\n’, ‘Python\n’, ‘YUNDAEHEE\n’, ‘076923\n’, ‘END’]
[‘START\n’, ‘Python\n’, ‘YUNDAEHEE\n’, ‘076923\n’, ‘END’]
with
키워드를 활용해 D 드라이브
에 저장되어있는 textfile.txt
를 불러옵니다.
텍스트 파일을 한 줄씩 읽는 방법은 크게 두 가지가 있습니다.
첫 번째 방식은 While
문을 활용한 방법입니다.
readline()
메서드는 파일의 텍스트를 한 줄씩 불러옵니다.
readline()
메서드는 다음 번 호출 때 자동적으로 다음 줄의 텍스트를 불러옵니다.
무한히 반복될 수 있으므로, 불러온 문장이 아무 것도 없다면 종료하게됩니다.
두 번째 방식은 for
문을 활용한 방법입니다.
file
변수에 텍스트들이 저장되어 있으므로, 반복해 문자열을 불러옵니다.
만약, 더 이상 불러올 문자열이 없다면, 반복이 종료됩니다.
- Tip :
\n
은 개행 문자로, 줄 바꿈을 의미합니다.
텍스트 파일 모두 읽기
- 결과
- [‘START\n’, ‘Python\n’, ‘YUNDAEHEE\n’, ‘076923\n’, ‘END’]
START
Python
YUNDAEHEE
076923
END
텍스트 파일을 모두 읽는 방법은 한 줄씩 읽는 방법과 동일하게 두 가지가 있습니다.
첫 번째 방식은 변수명.readlines()
을 이용하여 목록
형식으로 모두 불러오는 방법입니다.
readline
에서 s
가 추가되어 readlines
로 사용합니다.
두 번째 방식은 변수명.read()
를 이용해 문자열
형식으로 모두 불러오는 방법입니다.
문자열 자체로 저장하기 때문에, 개행 문자인 \n
을 자동으로 줄 바꿈 처리합니다.
위 방식을 이용하면 파일 내의 모든 문자열을 한 번에 불러와 변수에 저장할 수 있습니다.
댓글 남기기