문제:
팀과제로 게임을 만드는 중인데, 내가 엔딩 부분을 맡아서 작업하는 중에
이렇게 주석처리된 부분처럼 다시 게임 시작 부분으로 사용자를 리턴시키는 명령을 만들어야 하는데...
음... 검색하다보니 "스크립트를 재시작" 시키는 명령을 찾으면 될 것 같았다.
시도:
그래서 하다가 아래와 같은 코드를 찾았는데...
import os import sys
sys.stdout.flush()
os.execv(sys.argv[0], sys.argv)
이걸 코드 밑에도 넣어보고...
결과는...
안된다.
GPT에 물어보니 이건 안에다 써 넣는 코드가 아니라 파일을 따로 만들어서 써넣고 장치시키는 코드라는데,
restart.py 파일을 만들어서 넣고 실행해봐도 안된다.
아마 뭔가 연결해야 하는 것 같아서 argv자리가 인수 넣는 자리 같길래 내 main.py 파일의 파일명을 넣어봤는데,
그래도 안된다.
그럼 main.py에서도 매개변수로써 restart.py 파일의 코드들을 받는 자리를 만들어야 하는 거 아닐까???
하는 느낌적인 느낌의 의문을 갖고 있지만
일단은 팀프로젝트가 바쁘기 때문에 불가하다 치고 넘어간다.
위 코드를 치는 방법 말고도
내 터미널의 파이썬 파일 실행을 종료하고 새로 파이썬 파일의 스크립트를 윗줄에서부터 실행시키는 코드는 없는지...
그렇다고 전체를 while 문에 넣을 수는 없고 ㅋㅋㅋ
다른 방법은 없을 지 생각해 보는 중...
오 이런게 있다는데 해볼까
오!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 되는 거 같다!!
된다 돼!!! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
해결:
import subprocess
subprocess.call(["python", "script.py"]) #여기서 python은 파이썬 인터프리터의 경로이고
# script.py는 실행할 파이썬 파일의 이름으로써, 이 코드가 적힌 엄마파일의 이름을 그대로 적어줘도 된다.
알게된점:
1. 일단은 GPT에 질문할 때 한 번에 원하는 대답이 안나와도, 여러가지 문장으로 다시 질문해보면 답이 나올 수 있다는 점
2. 포기하지 않으면 문제가 해결될 순 있으나, 걸리는 시간을 잘 어림 잡아야 작업 효율을 챙길 수 있다는 점.
'About coding > Today I learned' 카테고리의 다른 글
2023년 03월 31일 TIL (0) | 2023.03.31 |
---|---|
2023년 03월 30일 TIL (0) | 2023.03.30 |
2023년 03월 28일 TIL (0) | 2023.03.28 |
2023년 03월 27일 TIL (0) | 2023.03.27 |
2023년 03월 24일 TIL (0) | 2023.03.26 |