Working with Local Files and Directories

뱀 게임에 최고 점수 추가하기

게임을 멈추지 않고 scoreboard재설정

  • high score 기본속성에 넣어주기
  • reset메소드 생성
  • game over를 지웠기 때문에 clear()반복해서 쓰지 않게 위치 변경(원래는 increase_score에 있었음)

1

  • main.py에 생성한 메소드 넣어주기
  • 리셋시 뱀 위치 설정해주는 메소드 생성
  • clear()를 호출에 리스트에 있는 플레이 후 추가된 몸통 삭제 후 초기 뱀 메소드 호출
  • 머리방향 설정
def reset(self):
    self.segments.clear()
    self.create_snake()
    self.head = self.segments[0]


새로운 뱀 생성시 화면에 여전히 뱀이 남아있는 문제

화면에서 기존의 뱀의 세그먼트(부분)들을 실제로 제거하는 부분이 없음
Turtle 그래픽에서 Turtle 객체를 생성하면 화면에 계속 남게 되므로
단순히 리스트에서 객체를 제거하는 것만으로는 화면에서 해당 객체가 사라지지 않는다.
화면에서 기존의 뱀 세그먼트들을 실제로 제거하는 로직을 추가해야 함

2



“With” 키워드 사용 방법

-프로젝트에 텍스트 파일 생성

*open메소드

  • 내장되어 있는 메소드
  • import 없이 바로 사용가능
  • 변수에 저장할 수 있음
  • 열었던 파일의 작업이 다 끝나면 자원을 차지하지 않도록 닫아줘야 함

3


위의 번거로움을 덜기 위해 with를 사용

  • with 키워드가 파일을 직접 관리해, 우리가 일을 끝냈다는 것을 알아채는 즉시 파일을 닫음
as 변수명

4


파일에 내용을 쓰고 싶을 때

  • 읽기 전용 모드가 기본이기 때문에 변환시켜 줘야 함

5

  • 기존의 내용에서 추가하고 싶을 때는 mode = a (append 약자)

  • 파일이 존재하지 않고, 쓰기 모드일 때 파일 생성 가능

6


뱀게임에서 파일에 최고 점수 읽고 써서 축적하기

1️⃣ project에 data.txt파일 만들기

2️⃣ 초기 점수 설정

3️⃣ with 사용해서 초기 속성에 넣어주기

  • 문자열을 정수로 변환

7

4️⃣ 새로운 기록 쓸 수 있게 reset메소드 수정

  • int를 string으로 변환

8


상대 및 절대 파일 경로에 대한 이해

  • root는 슬래시( / )
  • ex) /work/project/talk.ppt ⇨ 절대파일 경로
  • 절대파일 경로 : 루트를 기준으로 시작

상대파일 경로

같은 project 폴더 안의 talk.ppt 파일에 접근하기 ⇨ ./talk.ppt

⭐️ ./ ⇨ 파일이 있는 현재 폴더를 의미함
⭐️ 한단계 위로 가려면 ⇨../
⭐️ 같은 폴더에 있으면 ./ 생략 가능

절대경로(Absolute) : 컴퓨터의 루트 중심
상대경로(Relative) : 현재 작업하고 있는 디렉토리 중심



Mail Merge Project

  • readlines() 메소드 활용 : 모든 줄을 리스트 형태로 반환함
  • String strip()메소드 활용 : 문자열 앞과 뒤의 공백을 지워줌

names - 리스트화

10

이름 뒤에 \n이 있음

9

11