[PYTHON] __file__ 변수는 무엇을 의미합니까 /할까요?
PYTHON__file__ 변수는 무엇을 의미합니까 /할까요?
A = os.path.join(os.path.dirname(__file__), '..')
B = os.path.dirname(os.path.realpath(__file__))
C = os.path.abspath(os.path.dirname(__file__))
나는 보통 실제 경로로 이것을 단단히 붙인다. 그러나 런타임에 경로를 결정하는 이러한 명령문에 대한 이유가 있으며, 실제로 사용할 수 있도록 os.path 모듈을 이해하고 싶습니다.
해결법
-
==============================
1.Python으로 모듈을로드하면 __file__이 이름으로 설정됩니다. 그런 다음 다른 기능과 함께이 파일을 사용하여 파일이있는 디렉토리를 찾을 수 있습니다.
Python으로 모듈을로드하면 __file__이 이름으로 설정됩니다. 그런 다음 다른 기능과 함께이 파일을 사용하여 파일이있는 디렉토리를 찾을 수 있습니다.
한 번에 하나씩 예제를 사용하십시오.
A = os.path.join(os.path.dirname(__file__), '..') # A is the parent directory of the directory where program resides. B = os.path.dirname(os.path.realpath(__file__)) # B is the canonicalised (?) directory where the program resides. C = os.path.abspath(os.path.dirname(__file__)) # C is the absolute path of the directory where the program resides.
여기에서 반환되는 다양한 값을 볼 수 있습니다.
import os print __file__ print os.path.join(os.path.dirname(__file__), '..') print os.path.dirname(os.path.realpath(__file__)) print os.path.abspath(os.path.dirname(__file__))
./text.py, ~ / python / text.py 등 다른 위치에서 실행하여 차이점을 확인하십시오.
-
==============================
2.나는 혼란을 먼저 다루기를 원한다. __file__은 와일드 카드가 아니며 속성입니다. 이중 밑줄 특성과 메서드는 관례에 따라 "특별"한 것으로 간주되며 특수한 용도로 사용됩니다.
나는 혼란을 먼저 다루기를 원한다. __file__은 와일드 카드가 아니며 속성입니다. 이중 밑줄 특성과 메서드는 관례에 따라 "특별"한 것으로 간주되며 특수한 용도로 사용됩니다.
http://docs.python.org/reference/datamodel.html에는 여러 가지 특수한 방법과 속성이 모두있는 것은 아닙니다.
이 경우 __file__은 모듈 (모듈 객체)의 속성입니다. 파이썬에서 .py 파일은 모듈입니다. 그래서 import amodule은 __file__이라는 속성을 갖습니다. 이는 다른 상황에서 다른 것을 의미합니다.
docs에서 가져온 것 :
귀하의 경우 모듈은 전역 네임 스페이스에서 자신의 __file__ 특성에 액세스하고 있습니다.
시도해보십시오.
# file: test.py print globals() print __file__
실행 :
python test.py {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__file__': 'test_print__file__.py', '__doc__': None, '__package__': None} test_print__file__.py
-
==============================
3.문서 별 :
문서 별 :
그리고 또한:
-
==============================
4.다양한 os.path 모듈과 결합 된 __file__을 사용하면 모든 경로가 현재 모듈의 디렉토리 위치와 관련이 있습니다. 이를 통해 모듈 / 프로젝트를 다른 시스템으로 이식 할 수 있습니다.
다양한 os.path 모듈과 결합 된 __file__을 사용하면 모든 경로가 현재 모듈의 디렉토리 위치와 관련이 있습니다. 이를 통해 모듈 / 프로젝트를 다른 시스템으로 이식 할 수 있습니다.
프로젝트에서 수행 할 작업은 다음과 같습니다.
A = '/Users/myname/Projects/mydevproject/somefile.txt'
그런 다음 / home / web / mydevproject /와 같은 배포 디렉토리를 사용하여 서버에 배포하려고하면 코드에서 경로를 올바르게 찾을 수 없습니다.
from https://stackoverflow.com/questions/9271464/what-does-the-file-variable-mean-do by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬의 분산 형 플롯 및 색상 매핑 (0) | 2018.10.10 |
---|---|
[PYTHON] 별도의 팬더 데이터 프레임을 서브 그림으로 플로팅하려면 어떻게해야합니까? (0) | 2018.10.10 |
[PYTHON] matplotlib을 사용하여 여러 서브 플로트에 대해 하나의 범례를 만드는 방법은 무엇입니까? (0) | 2018.10.10 |
[PYTHON] pytest의 PATH 문제 'ImportError : 모듈 이름이 YadaYadaYada' (0) | 2018.10.10 |
[PYTHON] 파이썬에서 문자열의 끝에서 부분 문자열을 어떻게 제거합니까? (0) | 2018.10.10 |