경로를 안전하게 만들고 텍스트 파일을 읽고 씁니다.
Path는 운영체제별 경로 차이를 처리하고 경로 결합, 존재 확인, 읽기와 쓰기를 제공합니다. with 블록을 사용하면 작업 중 오류가 나도 파일이 닫힙니다. 이 웹 실습의 파일은 실행마다 초기화되는 가상 파일 시스템에 저장됩니다.
예제에서 with path.open("r", encoding="utf-8") as file: 부분부터 찾으세요. 값을 만드는 표현식과 그 값을 다음 문장으로 넘기는 흐름을 한 줄씩 따라가면 실행 결과를 스스로 설명할 수 있습니다.
텍스트 인코딩을 명시하고 파일이 없거나 권한이 없는 경우의 OSError를 처리합니다. resolve 결과가 허용된 디렉터리 안인지 확인하면 경로 탈출을 막을 수 있습니다.
실제 서버에서는 업로드 파일명으로 직접 경로를 만들지 말고 크기 제한, 확장자와 실제 형식 검사, 무작위 저장 이름을 적용합니다.
이 코드는 브라우저의 실제 Python에서 실행됩니다. 먼저 현재 결과를 확인한 뒤 두 번째 학습 기록을 추가한 뒤 줄 단위로 읽어 출력하세요.
현재 작업 디렉터리가 항상 프로젝트 루트라고 가정한 상대 경로는 실행 위치에 따라 실패합니다.
직접 바꿔보세요두 번째 학습 기록을 추가한 뒤 줄 단위로 읽어 출력하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.