스택큐힙리스트

폴더 안의 모든 모듈을 로드하는 방법은 무엇인가요? 본문

카테고리 없음

폴더 안의 모든 모듈을 로드하는 방법은 무엇인가요?

스택큐힙리스트 2023. 4. 23. 11:07
반응형

모든 모듈 디렉토리를 가져오는 좋은 방법을 제공해주실 수 있나요?

다음과 같은 구조를 가지고 있습니다:

/Foo

bar.py

spam.py

eggs.py

나는 __init__.py를 추가하고 from Foo import *를 수행하여 패키지로 변환해 보았지만, 내가 바란 대로 작동하지 않았다.

답변 1

현재 폴더에서 모든 파이썬 (.py) 파일을 목록화하고, __init__.py에 __all__ 변수로 넣으십시오.

from os.path import dirname, basename, isfile, join

import glob

modules = glob.glob(join(dirname(__file__), *.py))

__all__ = [ basename(f)[:-3] for f in modules if isfile(f) and not f.endswith('__init__.py')]

답변 2

폴더내의 모든 모듈을 로드하는 방법을 알아보겠습니다. 모듈을 로드하는 것은 흔한 일입니다. 하지만 많은 모듈이 있을 경우, 개별적으로 로드하는 것은 번거로운 작업이 될 수 있습니다. 이러한 경우, 폴더내에 있는 모든 모듈을 한 번에 로드할 수 있습니다.

우리는 Node.js를 이용하여 이 작업을 수행할 것입니다. Node.js는 간단한 방법으로 모듈을 로드할 수 있는 기능을 갖추고 있습니다. 또한, 모듈을 한번에 로드하기 위한 패키지도 제공합니다. 이 패키지는 `require-dir`입니다.

`require-dir`을 사용하기 위해서는, 먼저 모듈을 설치해야 합니다. 설치하기 위해서는, 터미널에서 아래의 명령어를 입력합니다.

```

npm install require-dir

```

이제 로드하고 싶은 모듈이 들어있는 폴더로 이동합니다. 예를 들면, `modules`폴더입니다. `modules`폴더안에는 다양한 모듈들이 있을 것입니다. 이제 우리는 `require-dir`을 사용하여 이 폴더안에 있는 모든 모듈을 로드할 것입니다.

```javascript

const requireDir = require('require-dir');

const modules = requireDir('./modules');

```

이 코드는 모듈을 로드하기 위한 모든 작업을 처리합니다. `require-dir`은 지정된 폴더 내의 모듈을 로드하고 이 모듈들을 객체 형태로 반환합니다.

이제, `modules` 객체를 사용하여 `modules`폴더에 있는 모든 모듈에 접근할 수 있습니다.

이와 같이, 모든 모듈을 한 번에 로드하는 기능을 이용하면, 개별적으로 모듈을 로드하는 번거로움을 피할 수 있습니다. 이제 더 이상, 모듈을 로드하는 작업에 대해 걱정할 필요가 없으며, 코드 작성에만 집중할 수 있습니다. 이는 Node.js를 이용하는 개발자들에게 도움이 될 것입니다.

반응형
Comments