복붙노트

[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. ==============================

    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. ==============================

    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. ==============================

    3.문서 별 :

    문서 별 :

    그리고 또한:

  4. ==============================

    4.다양한 os.path 모듈과 결합 된 __file__을 사용하면 모든 경로가 현재 모듈의 디렉토리 위치와 관련이 있습니다. 이를 통해 모듈 / 프로젝트를 다른 시스템으로 이식 할 수 있습니다.

    다양한 os.path 모듈과 결합 된 __file__을 사용하면 모든 경로가 현재 모듈의 디렉토리 위치와 관련이 있습니다. 이를 통해 모듈 / 프로젝트를 다른 시스템으로 이식 할 수 있습니다.

    프로젝트에서 수행 할 작업은 다음과 같습니다.

    A = '/Users/myname/Projects/mydevproject/somefile.txt'
    

    그런 다음 / home / web / mydevproject /와 같은 배포 디렉토리를 사용하여 서버에 배포하려고하면 코드에서 경로를 올바르게 찾을 수 없습니다.

  5. from https://stackoverflow.com/questions/9271464/what-does-the-file-variable-mean-do by cc-by-sa and MIT license