실행 중인 파일의 이름과 path를 알아내는 방법 없을까요

발생하는 문제 및 실행환경

다른 스크립트 파일을 불러내는 코드를 만들고 있습니다. 다른 스크립트를 호출하기 전에 먼저 지금 실행 중인 스크립트의 이름과 path를 알아내고 싶은데 어떻게 하면 되나요?

예를 들어 script_1.py -> script_2.py를 호출 script_2.py -> script_3.py를 호출 script_3.py -> 아무것도 호출하지 않음

script_2에서 인자를 전달하지 않고도 script_3이 자기가 script_3인걸 알아내야 합니다

os.getcwd()는 처음 시작했던 스크립트의 path를 return 해서 쓸 수가 없었습니다. 다른 방법은 뭐가 있을까요

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    자기 자신의 이름과 소속 디렉토리를 알아내는 메소드는 다음과 같이 쓸 수 있습니다.

    • 이름 : inspect.getfile(inspect.currentframe())
    • 디렉토리 : os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))

    p1.py:

    execfile("p2.py")
    

    p2.py:

    import inspect, os
    print inspect.getfile(inspect.currentframe()) # p2.py의 path
    print os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) # p2.py가 속한 디렉토리
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.