디렉터리에서 모듈 로드
여러 Python 모듈 파일이 포함된 디렉터리 구조를 처리할 때 모든 파일을 가져와야 할 수 있습니다. 하나의 스크립트로. 각 모듈을 개별적으로 가져오는 것은 지루할 수 있으며, 특히 디렉터리에 수많은 모듈이 있는 경우 더욱 그렇습니다.
이 문제를 해결하는 한 가지 방법은 디렉터리를 Python 패키지로 변환하는 것입니다. 그러나 단순히 __init__.py 파일을 추가하고 from Foo import *를 사용하면 원하는 결과를 얻지 못할 수도 있습니다. 이 장애물을 극복하기 위한 대체 접근 방식은 현재 디렉터리의 모든 Python 모듈 파일을 나열하고 해당 이름을 __init__.py 파일 내의 __all__ 변수에 저장하는 것입니다.
이 접근 방식을 구현하는 코드는 다음과 같습니다.
from os.path import dirname, basename, isfile, join import glob # List all Python module files in the current directory modules = glob.glob(join(dirname(__file__), "*.py")) # Create a list of module names without the ".py" extension __all__ = [basename(f)[:-3] for f in modules if isfile(f) and not f.endswith('__init__.py')]
이 코드 조각은 먼저 glob.glob(join(dirname(__file__), "*.py")). 그런 다음 모듈이 아닌 파일이나 __init__.py 파일을 필터링합니다. 마지막으로 각 파일 이름에서 ".py" 확장자를 제거하여 모듈 이름을 추출합니다. 이러한 모듈 이름은 __init__.py 파일 내의 __all__ 변수에 저장됩니다.
이 접근 방식을 구현하면 폴더의 모든 모듈을 단일 스크립트로 효과적으로 로드할 수 있습니다. 여러 모듈을 관리하는 편리한 방법을 제공하고 from Foo import * 구문을 사용하여 쉽게 가져올 수 있습니다.
위 내용은 디렉터리에서 모든 Python 모듈을 효율적으로 가져오려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!