Python에서 현재 실행 중인 파일의 경로 찾기
Python에서 현재 실행 스크립트의 경로를 얻는 것은 파일에 액세스하고 다양한 작업을 수행합니다. 그러나 특정 조건에서는 여러 접근 방식이 실패할 수 있습니다. 이 기사에서는 다양한 시나리오에서 파일 경로를 검색하는 신뢰할 수 있는 방법을 살펴봅니다.
기존 접근 방식의 과제
os.path.abspath(os. path.dirname(sys.argv[0])) 및 os.path.abspath(os.path.dirname(__file__))에는 제한이 있습니다. sys.argv[0]는 다른 Python 스크립트에서 실행할 때 올바른 경로를 제공하지 않을 수 있으며, __file__은 py2exe 스크립트, IDLE, Mac OS X 환경 및 유사한 인스턴스에서 사용하지 못할 수 있습니다.
A Universal 솔루션
이러한 문제를 해결하려면 검사 및 os 모듈을 활용하는 안정적인 접근 방식이 필요합니다.
<code class="python">from inspect import getsourcefile from os.path import abspath</code>
getsourcefile(lambda:0)을 사용하면 다음의 소스 파일을 얻을 수 있습니다. 현재 실행 중인 람다 함수를 사용하여 다른 메서드의 한계를 효과적으로 우회합니다. 그런 다음 경로는 abspath를 사용하여 추출됩니다.
예제 시나리오
다음 디렉터리 구조를 고려하세요.
C:. | a.py \---subdir b.py
a.py 포함:
<code class="python">from inspect import getsourcefile from os.path import abspath print("a.py: File Path =", abspath(getsourcefile(lambda:0))) execfile("subdir/b.py")</code>
b.py 포함:
<code class="python">from inspect import getsourcefile from os.path import abspath print("b.py: File Path =", abspath(getsourcefile(lambda:0)))</code>
a.py를 실행하면 다음이 표시됩니다:
a.py: File Path = C:\a.py b.py: File Path = C:\subdir\b.py
이 다양한 상황에서 파일 경로를 정확하게 얻는 능력을 보여줍니다.
위 내용은 현재 실행 중인 Python 스크립트의 경로를 안정적으로 가져오려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!