모드는 무엇을 하고 무엇을 돌려받는지 정해
r은 읽기, w는 기존 내용을 비우고 쓰기, a는 뒤에 붙이기, x는 새 파일만 만들기야. +는 읽기와 쓰기를 함께 허용하고, t는 글자, b는 바이트를 다뤄.
파일의 수명은 with로 묶어
직접 close를 마지막 줄에 두면 중간 예외에서 닫히지 않을 수 있어. with open(...)은 어떤 경로로 블록을 나가도 닫아.
인코딩과 보존은 별도 계약이야
텍스트 파일은 실제 인코딩을 명시해. 양쪽을 통제한다면 UTF-8이 좋은 기본값이야. 중요한 파일에 w로 바로 쓰면 여는 순간 원본이 사라질 수 있으니 같은 디렉터리의 임시 파일에 완성한 뒤 flush하고 원자적으로 바꿔.