- Input and Output
7.2 Reading and Writing Files
7.2.1. Methods of File Objects
7.2.2. Saving structured data with json
7.2. Reading and Writing Files
7.2 파일 읽기 / 쓰기
open()
은 파일을 불러옵니다. 일반적으로 filename과 mode를 인자로 사용합니다. ```open(filename, mode)
(예시)
>>> f = open('workfile', 'w')
첫번째 인수(filename)는 파일의 이름을 스트링으로 표기합니다. 두번째 인수 역시 스트링입니다. 몇 가지 문자로 파일을 사용할 방식에 대해 표기합니다. 파일을 '읽기'만 할 때는 'r'
을 사용합니다. '쓰기'만 할 때는 'w'
를 사용합니다. (만약 같은 이름의 파일이 존재한다면, 덮어씌워집니다.) 'a'
는 파일에 내용을 추가합니다. 어떤 형식의 데이터이든 자동으로 파일의 끝에 추가됩니다. 'r+'
는 읽고 쓰기를 동시에 합니다. 두번째로 주어지는 mode인수는 선택사항입니다. mode에 대해 따로 입력하지 않으면 읽기모드 'r'
이 기본적으로 사용됩니다.
보통 파일은 텍스트 모드로 열립니다. 이것은 우리가 스트링을 파일에서 읽거나 파일에 쓸 수 있다는 뜻입니다. 그 스트링은 특정 방식으로 인코딩 되어야 하구요. 만약 인코딩이 특정한 방식이 아니라면, 기본값은 플랫폼의 방식을 따라가게 됩니다. (open()
에 관한 docs를 참고하세요.) 'b'
를 mode인수에 추가하면 파일이 binary 모드로 열립니다. 이 경우 데이터를 byte 양식으로 읽고 쓰게 됩니다. 이 모드는 텍스트가 아닌 모든 파일에 사용됩니다.
텍스트 모드일 경우, 기본적으로 기존 파일의 형식에서 각각의 줄 끄트머리에 \n
을 붙여 읽어옵니다. 텍스트 모드에서 무언가를 입력할 때, 역시 줄 끄트머리에 \n
을 붙여 저장합니다. 이러한 방식은 겉으로 드러나지 않고 진행됩니다. 텍스트 파일에는 괜찮지만 binary 데이터 방식의 파일 (JPEG or EXE)에는 문제가 생기므로 주의해야 합니다.